「word マクロ 変更履歴 切り替え」
「word マクロ 変更履歴 on off」
「wordvba 変更履歴の記録 オフ」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスが時折あることに気づきました。
変更履歴のOnとOffを切り替える、Wordマクロ・VBA(Visual Basic for Applications)のコードを探している方による検索でしょうか。
変更履歴のオンとオフを切り替えるサンプルマクロ
以下のような、1行のマクロで、アクティブな文書の変更履歴のオン・オフを切り替えることができます。
ActiveDocument.TrackRevisions = _
Not ActiveDocument.TrackRevisions
サンプルマクロの解説
DocumentオブジェクトのTrackRevisionsプロパティで、変更履歴のオン・オフ状態を取得したり、変更したりできます。
上記のマクロは、Document.TrackRevisionsプロパティの値を、Not演算子を使ってひっくり返すだけのコードです。Not演算子を使うと、TrueだったときはFalseに、FalseだったときはTrueになります。それだけのコードです。
変更履歴をオフにするだけなら、
ActiveDocument.TrackRevisions = False
変更履歴をオンにするだけなら、
ActiveDocument.TrackRevisions = True
でOKです。
Not演算子を使わなければ、
If ActiveDocument.TrackRevisions = True Then
ActiveDocument.TrackRevisions = False
Else
ActiveDocument.TrackRevisions = True
End If
といったコードにするのでしょうが、Not演算子を使えば
ActiveDocument.TrackRevisions = _
Not ActiveDocument.TrackRevisions
という1行で済んでしまうのです。
マクロ記録機能の改良を!
ちなみに、ここでご紹介している
ActiveDocument.TrackRevisions = _
Not ActiveDocument.TrackRevisions
というコードは、私が考えたものではありません。
マクロ記録するとできるコードそのままなのです。
Wordのマクロ記録ではIf文が作られることがあるということをご紹介していますが、このNot演算子を使ったコードも汎用性が高く、プログラミング初心者には参考になる、とても興味深いものです。
VBAの機能は、今後バージョンアップされることは、かなり考えにくくなってしまっていますが、このような汎用性の高いコードを出力するようにマクロ記録を改良することは、MicrosoftがOffice 2013からはじめているApps for Officeよりも、実用性・即効性・近い将来への社会的インパクトから考えて、とても大切な取り組むべき課題だと、私は感じます。
Home » ワードマクロ・Word VBAの使い方 » 変更履歴・コメント » 変更履歴のオン・オフを切り替えるWordマクロ