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

Mass background color change of Word files

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

一般方法是将您要进行的更改记录为 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 项必须作为 .Collection.Item(x) 访问。在 VBScript 中有效的缩写语法 .Collection(x) 在 PowerShell 中无效。
  • 函数调用需要括号(.Close() 而不是 .Close)。
  • 参数不能省略。如果您希望参数具有默认值,则必须使用 [Type]::Missing