2

我正在尝试使用 Word VBA 设置文本颜色。但是,Word 似乎并没有将颜色变化视为“变化”。以下面的 VBA 代码为例,我运行后,Word Undo 不包含任何内容。如果我直接退出 Word,Word 不会提示保存更改。你能帮忙评论一下吗?非常感谢您的意见!

Public Sub Test()
    ActiveDocument.Range.Font.TextColor = wdColorBlue
End Sub

PS:Windows 7 SP1 X64 上的 Word 2010 x86。

4

2 回答 2

2

不要使用 TextColor 属性,而是使用 Color 属性:

ActiveDocument.Range.Font.Color = wdColorBlue

如果您这样做,使用 Font.Color,Word 将注册更改并将其视为要撤消的内容。TextColor 属性不是 Word 正式可配置的属性;文档将其定义为只读。您可以通过 TextColor 属性有效地更改文本颜色的事实是异常的,因为在键入“Font”时 vba 的智能感知会显示 TextColor 而不是 Color。尽管如此,很明显(至少在一个级别)Word 将 TextColor 视为只读,因此它不会完全注册对该属性的更改。

于 2012-10-22T21:16:19.957 回答
0

词 2013

我尝试了下面的代码,没有问题。撤消适用于每个命令行。关闭时 Word 照常提示保存更改

Public Sub Test()
   ActiveDocument.Range.Font.TextColor = wdColorBlue
   ActiveDocument.Range.Font.TextColor = wdColorBrightGreen
   ActiveDocument.Range.Font.TextColor = wdColorRed
End Sub
于 2021-05-06T15:05:26.097 回答