Office関連

「変更履歴とコメントの表示」を設定するWordマクロ

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マクロを実行すると、下図のように「インク」「挿入と削除」「更新箇所の強調表示」のみがチェックされます。

SetReviewShowMarkupMenu_01

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

2014年5月の人気記事前のページ

[Office]WordやPowerPointで画像の画質が悪くなった時の対処方法次のページ

関連記事

  1. Excel

    [Office VBA]カスタムXMLを使って設定情報などをドキュメントに保存する方法

    Twitterで、@akashi_keirinさんの下記ツイートを見か…

  2. Office関連

    PDFファイルに差し込み印刷するVBAマクロ

    このページにもあるように、AcrobatはOLEオートメーション機能に…

  3. Office関連

    図形の結合を行うPowerPoint マクロ(ExecuteMsoメソッド編)

    Excel MVPの伊藤さんのブログで、PowerPointの「図形の…

  4. Office関連

    [Office]「タッチ」タブの正体!?

    最近下記のようにOfficeのリボンにある「タッチ」タブについての質問…

  5. Office関連

    Yahoo!翻訳で文字列を翻訳するマクロ

    「Google翻訳で文字列を翻訳するマクロ」ではGoogle翻訳を利用…

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

Time limit is exhausted. Please reload CAPTCHA.

※本ページはプロモーションが含まれています。

Translate

最近の記事

アーカイブ

PAGE TOP