以前、「【コード】コメントの挿入者名を変更するWordマクロ」にて文書内のすべてのコメントの挿入者名(コメント者名)を変更するマクロを紹介しました。
今回は、特定のコメントについて名前を変更するマクロを紹介します。
このマクロでできること
以下のような、複数名がコメントしている文書があります。
この状態でマクロを実行します。すると以下のダイアログが表示されます。ここには、このファイルの作者名が自動的に表示されます。
変更対象となるコメント者名が別の名前の場合には修正してください。
[OK]ボタンをクリックし、次のダイアログで変更後の名前を入力します。「校閲者」と入力しました。
そして、次のダイアログでイニシャルを入力します。「AA」としました。
これで[OK]ボタンをクリックすると、文書全体で対象に特定した箇所だけコメント者名が変更されます。
マクロの解説
元に戻しやすいようにUndoRecordを使っています。
文書の「作者名」は22行目の ActiveDocument.BuiltInDocumentProperties(“author”) で取得しています。この値は、以下のようにバックステージビューの[情報]のページに表示されているものです。
この値を初期値(Default値)としてInputBoxに表示しています。
36行目~44行目で入力した情報に基づいてコメントの挿入者名を修正します。
マクロ
Sub 特定のコメント挿入者名を変更するWordマクロ() Const myTitle As String = "コメント者名の変更" '------------------------------------------- 'UndoRecordの利用 '------------------------------------------- #If VBA7 Then Dim objUndo As UndoRecord Set objUndo = Application.UndoRecord objUndo.StartCustomRecord myTitle #End If '------------------------------------------- '情報の入力 '------------------------------------------- Dim myName1 As String '変更対象のコメント者名 Dim myName2 As String '変更後のコメント者名 Dim myInitial As String '変更後のコメント者イニシャル myName1 = InputBox("変更対象のコメント者名を入力してください。", myTitle, _ ActiveDocument.BuiltInDocumentProperties("author")) If myName1 = vbNullString Then Exit Sub myName2 = InputBox("変更後のコメント者名を入力してください。", myTitle) If myName2 = vbNullString Then Exit Sub myInitial = InputBox("変更後のコメント者のイニシャルを入力してください。", myTitle) If myInitial = vbNullString Then Exit Sub '------------------------------------------- 'コメント者名の変更処理 '------------------------------------------- Dim myComment As Comment For Each myComment In ActiveDocument.Range.Comments With myComment If .Author = myName1 Then .Author = myName2 .Initial = myInitial End If End With DoEvents Next '------------------------------------------- 'UndoRecordの利用 '------------------------------------------- #If VBA7 Then objUndo.EndCustomRecord Set objUndo = Nothing Application.ScreenRefresh #End If MsgBox "変更が終わりました。", vbInformation, myTitle End Sub
関連記事
- 【Word VBA】コメントの挿入者名と変更履歴の校閲者名を「作成者」に変更するWordマクロ
- 【Word VBA】コメントの挿入者名を変更するWordマクロ
- 【Word VBA】コメントの文字の大きさを変更するWordマクロ
- 【Word VBA】コメントを対応済み(完了)とするWordマクロ
- 【Word VBA】コメントを書き出すWordマクロ
- 【Word VBA】コメントを書き出すWordマクロ(その2)
- 【Word VBA】コメントを書き出すWordマクロ(その3) ページ番号付き
- 【Word VBA】コメントを書き出すWordマクロ(その3) 特許明細書仕様
- 【Word VBA】コメントを書き出すWordマクロ(その4) ページ番号・行番号付き
- 【Word VBA】コメントを書き出すWordマクロ(その5) ページ番号・行番号・作者名付き
- 【Word VBA】コメントを書き出すWordマクロ(その6)対象となる文を取得
- 【Word VBA】個別のコメントの挿入者名を変更するWordマクロ
- 【Word VBA】既存のコメントに追記するWordマクロ
- 【Word VBA】既存のコメントに追記するWordマクロ(その2)
- 【Word VBA】特定のコメント挿入者名を変更するWordマクロ
- 【Word VBA】赤い風船が大嫌い!!風船を表示させずにコメントを入力するWordマクロ
- 【Word VBA】選択範囲内のコメントを削除するWordマクロ
- 【Word VBA】選択範囲内のコメントを次の段落に移動するWordマクロ