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