【Word VBA】コメントを書き出すWordマクロ(その3) ページ番号付き

2012年2月18日

以前ご紹介した以下の記事の続きです。

【コード】コメントを書き出す

【コード】コメントを書き出す(その2)

最近は、納品時のファイルにコメントをつけてよいことがわかったので、コメント機能を多用しています。

また、後で見直しが必要だと思われる箇所にはすぐにコメントを入れておきます(これも自動化済み 笑)。

非常に便利ですね。

このマクロでできること

今までにご紹介したコメント書出し用のマクロと同じような機能です。

コメントが記載されているページ番号も表示できるようにしてみました。

コメントを記入したファイルを開いてこのマクロを実行します。

以下のようにコメントがはいっています。

コメントの挿入例

ここでマクロを実行すると、以下のように新規文書が作成されて、内容に応じて列の幅が調整されます。

項目も最初の行に記載されています。

コメントの書出し例

マクロの解説

17行目~26行目で、最初の行に項目名を入れています。

31行目、32行目が、ページ番号の入力方法です。案外簡単に入力できます。

マクロ


Sub コメントを別紙に書き出すマクロ_3()

 Dim i As Integer
 Dim actDoc As Document
 Dim newDoc As Document
 Dim myTable As Table

 If ActiveDocument.Comments.Count = 0 Then Exit Sub

 'オブジェクト変数の設定
 Set actDoc = ActiveDocument
 Set newDoc = Documents.Add
 Set myTable = newDoc.Tables.Add(Range:=Selection.Range, _
       NumRows:=actDoc.Comments.Count + 1, NumColumns:=3)

 '表の項目を追記
 With myTable
  .Cell(1, 1).Range.Text = "Page"
  .Cell(1, 2).Range.Text = "対象部分"
  .Cell(1, 3).Range.Text = "コメント"
  .Rows(1).Select
  With Selection
   .ParagraphFormat.Alignment = wdAlignParagraphCenter
   .Collapse direction:=wdCollapseStart
  End With
 End With
 
 'ページ番号とコメントを表に記入
 For i = 1 To actDoc.Comments.Count
  With actDoc.Comments(i)
   myTable.Cell(i + 1, 1).Range.Text = _
    .Scope.Information(wdActiveEndPageNumber)
   myTable.Cell(i + 1, 2).Range.Text = .Scope.Text
   myTable.Cell(i + 1, 3).Range.Text = .Range.Text
  End With
 Next i
 
 '表のスタイルを設定
 With myTable
  .Style = "表 (格子)"
  .AutoFitBehavior (wdAutoFitContent)
 End With

 'オブジェクト変数の解放
 Set actDoc = Nothing
 Set newDoc = Nothing

End Sub

コメントに関するマクロ

-コード
-, ,