Home » ワードマクロ・Word VBAの使い方 » 変更履歴・コメント » 変更履歴のオン・オフを切り替えるWordマクロ

変更履歴のオン・オフを切り替えるWordマクロ

対象:Word2007, Word2010, Word2013

変更履歴のオン・オフを切り替えるWordマクロ

「word マクロ 変更履歴 切り替え」
「word マクロ 変更履歴 on off」
「wordvba 変更履歴の記録 オフ」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスが時折あることに気づきました。

変更履歴のOnとOffを切り替える、Wordマクロ・VBA(Visual Basic for Applications)のコードを探している方による検索でしょうか。

[スポンサードリンク]

変更履歴のオンとオフを切り替えるサンプルマクロ

以下のような、1行のマクロで、アクティブな文書の変更履歴のオン・オフを切り替えることができます。

Sub 変更履歴のオンオフを切り替える()

 ActiveDocument.TrackRevisions = _
  Not ActiveDocument.TrackRevisions

End Sub

サンプルマクロの解説

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マクロ

「変更履歴・コメント」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.