2

WordVBAを使用してテキストの色を設定しようとしています。しかし、Wordは色の変化を「変化」とは見なしていないようです。たとえば、次のVBAコードを実行した後、WordUndoには何も含まれていません。Wordを直接終了すると、Wordは変更の保存を求めるプロンプトを表示しません。コメントをお願いします。ご意見ありがとうございました!

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

PS:Windows 7SP1X64上のWord2010x86。

4

2 に答える 2

2

TextColor プロパティを使用する代わりに、Color プロパティを使用します。

ActiveDocument.Range.Font.Color = wdColorBlue

このようにすると、Font.Color を使用すると、Word は変更を登録し、元に戻すものとして扱います。TextColor プロパティは、Word で公式に構成可能なプロパティではありません。ドキュメントでは、読み取り専用として定義されています。TextColor プロパティを介してテキストの色を効果的に変更できるという事実は、vba のインテリセンスが "Font." と入力したときに Color ではなく TextColor を表示するという事実と同様に異常です。それにもかかわらず、(少なくとも 1 つのレベルで) Word が TextColor を読み取り専用として扱うことは明らかであり、そのため、そのプロパティへの変更を完全には登録しません。

于 2012-10-22T21:16:19.957 に答える