Word文件的大量背景颜色更改

时间:2015-01-01 16:38:15

标签: vba powershell ms-word word-vba

我有大约400个Word文件,我正在寻找一种用脚本替换所有这些文件的背景颜色的方法。那是否可以以任何方式实现?

1 个答案:

答案 0 :(得分:1)

一般方法是记录您要作为VBA宏创建的更改,将该宏从VBA转换为PowerShell,然后遍历文档以进行修改。

$wd = New-Object -COM 'Word.Application'
$wd.Visible = $true   # set to $false for production

Get-ChildItem 'C:\some\folder\with\*.docx' | % {
  $doc = $wd.Documents.Open($_.FullName)

  # your modifications to $doc here

  $doc.Save()
  $doc.Close()
}

$wd.Quit()
[Runtime.InteropServices.Marshal]::ReleaseComObject($wd)
[GC]::Collect()
[GC]::WaitForPendingFinalizers()

我刚才为translating VBA to VBScript写了一本指南。其中大部分也应该适用于PowerShell,尽管存在一些差异:

  • 必须以.Collection.Item(x)的形式访问收藏品。在VBScript中工作的缩写语法.Collection(x)在PowerShell中不起作用。
  • 函数调用需要括号(.Close()而不是.Close)。
  • 不能省略参数。如果您希望参数具有其默认值,则必须使用[Type]::Missing