Home » ワードマクロ・Word VBAの使い方 » 変更履歴・コメント » コメントを取得するWordマクロ

対象:Word2007, Word2010, Word2013, Windows版Word2016

コメントを取得するWordマクロ

「vba word コメント 取得」
という検索キーワードで、このサイト・インストラクターのネタ帳へのアクセスがありました。

Word文書に挿入されているコメントの文字列を取得するWord VBA(Visual Basic for Applications)のコードを探している方による検索でしょうか。

[スポンサードリンク]

コメント文字列をDebug.Printするサンプルマクロ

以下のようなマクロで、アクティブな文書に挿入されているコメントの文字列を取得して、イミディエイトウィンドウに出力することができます。

Sub コメントを取得する_1()

 Dim cmt As Comment

 For Each cmt In ActiveDocument.Comments
  Debug.Print cmt.Range.Text
 Next cmt

End Sub

アクティブ文書の全コメントに対するFor Each~Nextループの中で、Commentsコレクションオブジェクトの単一オブジェクトであるCommentオブジェクトのRangeオブジェクトを取得して、

コメントを取得するWordマクロ

RangeオブジェクトのTextプロパティで、

コメントを取得するWordマクロ

コメント文字列を取得して、Debug.Printしています。

オブジェクトブラウザー等で確認できるとおり、TextプロパティはRangeオブジェクトの既定メンバー・デフォルトプロパティではありますが、可読性を考えるとしっかりと「.Range.Text」と書いておくほうがいいでしょう。

ページ番号とコメントを出力するサンプルマクロ

以下のようなマクロにすれば、コメントの挿入されているページのページ番号と、コメントの文字列がイミディエイトウィンドウに出力されます。

Sub コメントを取得する_2()

 Dim cmt As Comment

 For Each cmt In ActiveDocument.Comments
 With cmt
  Debug.Print _
   .Reference.Information(wdActiveEndAdjustedPageNumber) & _
   vbTab & .Range.Text
 End With
 Next cmt

End Sub

基本的な考え方は、先ほどのコメントの文字列だけを出力するマクロと同じです。

CommentオブジェクトのReferenceプロパティで、コメントの挿入されている本文側の領域を表すRangeオブジェクトを取得して、

コメントを取得するWordマクロ

そのInformationプロパティの引数に、

コメントを取得するWordマクロ

定数・wdActiveEndAdjustedPageNumberを指定することで、ページ番号を取得する処理が先のマクロに追加されています。

[スポンサードリンク]

Home » ワードマクロ・Word VBAの使い方 » 変更履歴・コメント » コメントを取得するWordマクロ

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

検索


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

.