Microsoft コミュニティに「変更履歴とコメントの表示」オプションを自動的に設定したい、との質問があったので、マクロでの処理を考えてみました。
・word2010で、変更履歴のオプションを保存することはできますか? – マイクロソフト コミュニティ
http://answers.microsoft.com/thread/22d3a6ec-4650-43f1-9f55-661b2a805612
変更履歴とコメントの表示メニューの各項目(toggleButton)には下記のようにコントロールIDが割り振られています。
コメント | ReviewShowComments |
インク | ReviewShowInkMarkup |
挿入と削除 | ReviewShowInsertionsAndDeletions |
書式設定 | ReviewShowFormatting |
吹き出し表示領域の背景色 | ReviewShowMarkupAreaHighlight |
変更履歴を吹き出しに表示 | ReviewShowRevisionsInBalloons |
すべての変更履歴を本文中に表示 | ReviewShowRevisionsInline |
コメント/書式のみ吹き出しに表示 | ReviewShowOnlyCommentsAndFormattingInBaloons |
更新箇所の強調表示 | ReviewHighlightUpdates |
その他の校閲者 | ReviewOtherAuthors |
そのため、GetPressedMsoメソッドを使えばコントロールが現在押されているかどうかが取得できるので、状態を取得した上でExecuteMsoメソッドを使えば、各コントロールの状態を自由に設定できるはずです。
というわけで、考えたのが下記のコードです。
Option Explicit Public Sub SetReviewShowMarkupMenu() '変更履歴とコメントの表示設定 ToggleControl "ReviewShowComments", False 'コメント ToggleControl "ReviewShowInkMarkup", True 'インク ToggleControl "ReviewShowInsertionsAndDeletions", True '挿入と削除 ToggleControl "ReviewShowFormatting", False '書式設定 ToggleControl "ReviewShowMarkupAreaHighlight", False '吹き出し表示領域の背景色 ToggleControl "ReviewShowRevisionsInBalloons", False '変更履歴を吹き出しに表示 ToggleControl "ReviewShowRevisionsInline", False 'すべての変更履歴を本文中に表示 ToggleControl "ReviewShowOnlyCommentsAndFormattingInBaloons", True 'コメント/書式のみ吹き出しに表示 ToggleControl "ReviewHighlightUpdates", True '更新箇所の強調表示 'ToggleControl "ReviewOtherAuthors", True 'その他の校閲者 End Sub Private Sub ToggleControl(ByVal idMso As String, ByVal flg As Boolean) '指定したコントロール(ToggleButton)の値を設定する Select Case Application.CommandBars.GetPressedMso(idMso) Case True: If flg = True Then Exit Sub Case False: If flg = False Then Exit Sub End Select Application.CommandBars.ExecuteMso idMso End Sub
上記SetReviewShowMarkupMenuマクロを実行すると、下図のように「インク」「挿入と削除」「更新箇所の強調表示」のみがチェックされます。
Word起動時(ファイルを開いたとき)にマクロを実行するには、リボンをカスタマイズして、customUI要素のonLoad属性のコールバックで処理を行います。
・リボンXML
<?xml version="1.0" encoding="utf-8"?> <customUI onLoad="Ribbon_onLoad" xmlns="http://schemas.microsoft.com/office/2006/01/customui" />
・VBAコード
Option Explicit Public Sub Ribbon_onLoad(ribbon As IRibbonUI) ToggleControl "ReviewShowComments", False 'コメント ToggleControl "ReviewShowInkMarkup", True 'インク ToggleControl "ReviewShowInsertionsAndDeletions", True '挿入と削除 ToggleControl "ReviewShowFormatting", False '書式設定 ToggleControl "ReviewShowMarkupAreaHighlight", False '吹き出し表示領域の背景色 ToggleControl "ReviewShowRevisionsInBalloons", False '変更履歴を吹き出しに表示 ToggleControl "ReviewShowRevisionsInline", False 'すべての変更履歴を本文中に表示 ToggleControl "ReviewShowOnlyCommentsAndFormattingInBaloons", True 'コメント/書式のみ吹き出しに表示 ToggleControl "ReviewHighlightUpdates", True '更新箇所の強調表示 'ToggleControl "ReviewOtherAuthors", True 'その他の校閲者 End Sub Private Sub ToggleControl(ByVal idMso As String, ByVal flg As Boolean) '指定したコントロール(ToggleButton)の値を設定する Select Case Application.CommandBars.GetPressedMso(idMso) Case True: If flg = True Then Exit Sub Case False: If flg = False Then Exit Sub End Select Application.CommandBars.ExecuteMso idMso End Sub
リボンのカスタマイズについては下記ページをご参照ください。
・初心者備忘録 リボン関連
//www.ka-net.org/ribbon.html
・初心者備忘録ブログ リボン関連カテゴリー
//www.ka-net.org/blog/?cat=1
この記事へのコメントはありません。