「vba word コメント 取得」
という検索キーワードで、このサイト・インストラクターのネタ帳へのアクセスがありました。
Word文書に挿入されているコメントの文字列を取得するWord VBA(Visual Basic for Applications)のコードを探している方による検索でしょうか。
コメント文字列をDebug.Printするサンプルマクロ
以下のようなマクロで、アクティブな文書に挿入されているコメントの文字列を取得して、イミディエイトウィンドウに出力することができます。
Dim cmt As Comment
For Each cmt In ActiveDocument.Comments
Debug.Print cmt.Range.Text
Next cmt
アクティブ文書の全コメントに対するFor Each~Nextループの中で、Commentsコレクションオブジェクトの単一オブジェクトであるCommentオブジェクトのRangeオブジェクトを取得して、
RangeオブジェクトのTextプロパティで、
コメント文字列を取得して、Debug.Printしています。
オブジェクトブラウザー等で確認できるとおり、TextプロパティはRangeオブジェクトの既定メンバー・デフォルトプロパティではありますが、可読性を考えるとしっかりと「.Range.Text」と書いておくほうがいいでしょう。
ページ番号とコメントを出力するサンプルマクロ
以下のようなマクロにすれば、コメントの挿入されているページのページ番号と、コメントの文字列がイミディエイトウィンドウに出力されます。
Dim cmt As Comment
For Each cmt In ActiveDocument.Comments
With cmt
Debug.Print _
.Reference.Information(wdActiveEndAdjustedPageNumber) & _
vbTab & .Range.Text
End With
Next cmt
基本的な考え方は、先ほどのコメントの文字列だけを出力するマクロと同じです。
CommentオブジェクトのReferenceプロパティで、コメントの挿入されている本文側の領域を表すRangeオブジェクトを取得して、
そのInformationプロパティの引数に、
定数・wdActiveEndAdjustedPageNumberを指定することで、ページ番号を取得する処理が先のマクロに追加されています。
Home » ワードマクロ・Word VBAの使い方 » 変更履歴・コメント » コメントを取得するWordマクロ