2012-10-20 44 views
2

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

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

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

+0

进行更改后可以设置“ActiveDocument.Saved = False”,“保存更改?”关闭后会触发。 –

+0

你的范围是否为空? – Neil

+0

@Tim谢谢!但我想知道为什么设置文本颜色不被视为“更改”? @尼尔不,它不是。 – SOUser

回答

2

除了使用文字颜色属性,使用Color属性:

ActiveDocument.Range.Font.Color = wdColorBlue 

如果你不喜欢这样,与Font.Color,Word将办理变更登记,并把它当作什么撤消。 TextColor属性不是Word正式的可配置属性;该文档将其定义为只读。事实上,你可以通过TextColor属性有效地改变文本颜色是异常的,因为当输入“Font”时,vba的intellisense会调出TextColor而不是Color。不过,很显然(至少在一个级别上)Word将TextColor视为只读,因此它不会将更改注册到该属性。

+0

非常感谢您提供的信息! :) – SOUser