无法使用Word VBA保存文本颜色的更改?

时间:2012-10-20 23:27:55

标签: vba ms-word word-2010

我正在尝试使用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。

2 个答案:

答案 0 :(得分:2)

使用Color属性:

,而不是使用TextColor属性
ActiveDocument.Range.Font.Color = wdColorBlue

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

答案 1 :(得分:0)

Word 2013

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

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