【Word VBA】既存のコメントに追記するWordマクロ(その2)

コメント機能を使って仕事をしていますか?

先日の「【コード】既存のコメントに追記するWordマクロ」の応用です。

ブログの読者さんから質問がありまして作ってみました。上記の記事では、コメントの先頭に文字列を追記しましたが、今回の記事ではコメントの末尾に文字列を追記してみます。

このマクロでできること

選択された範囲内にあるコメントの末尾に新たな段落を挿入し、そこに「対応済みです」と入力して蛍光ペン(黄色)で着色します。

実行前

実行後

マクロの解説

全てのコメントに対して処理をするのでループさせます。

ここでのポイントは、For Each… Next ステートメントを使わないことです。

前回の記事でも紹介したとおり、For Each… Next ステートメントの場合にはバグがあります。カウンター変数を用いてFor… Next ステートメントカウンター変数を使いましょう。

あと、オブジェクト内の最終段落の特定方法も覚えましょう。

17行目にてコメント範囲内の最終段落を特定しています。

Paragraphs.Last プロパティで、段落のコレクション(集まり)の最後の1つのParagraph オブジェクトを特定します。

蛍光ペンで着色するので、以下のようにRange オブジェクトに変換します。

Paragraphs.Last.Range.HighlightColorIndex = wdYellow

マクロ


Sub コメントに追記する2()

 Dim myText As String
 Dim myComment As Comment
 Dim i As Integer
 Dim iMax As Integer

 myText = "対応済みです"

 iMax = Selection.Comments.Count

 If iMax > 0 Then
  For i = 1 To iMax
   Set myComment = Selection.Comments(i)
   With myComment.Range
    .InsertAfter vbCr & myText
    .Paragraphs.Last.Range.HighlightColorIndex = wdYellow
   End With
  Next i
 Else
  MsgBox "コメントを含むように範囲を選択してください。", vbExclamation
 End If

End Sub

関連記事

トップへ戻る