Mosheには、コピーエディターによって編集されたWord文書があります。編集者がコメントを挿入した場所では、左括弧で始まり、「ed note:」、メモ、最後に右括弧が続きます。

Mosheの社内プロセスでは、これらのメモを実際のWordコメントとして持つ方が有利です。彼は、これらのテキスト内のメモの検索を自動化し、Wordのコメントに変換する方法があるかどうか疑問に思います。

このプロセスを自動化する方法は、マクロを使用することです。マクロはWordの検索および置換機能に依存できますが、一致するコメントが見つかるたびに処理を追加します。

Sub NoteToComment()

Dim sTemp As String

Selection.HomeKey Unit:=wdStory

With Selection.Find         .ClearFormatting         .Text = "\(ed note:*\)"

.Replacement.Text = ""

.Forward = True         .Wrap = wdFindStop         .MatchWildcards = True     End With

Do While Selection.Find.Execute         sTemp = Selection.Text         sTemp = Mid(sTemp, 10, Len(sTemp) - 11)

sTemp = Trim(sTemp)

Selection.Text = ""

Selection.MoveEnd unit:=wdCharacter         Selection.MoveStart unit:=wdCharacter, Count:=-1         If Selection.Text = "  " Then Selection.Text = " "

Selection.Collapse         ActiveDocument.Comments.Add Range:=Selection.Range, Text:=sTemp     Loop End Sub

マクロは最初にドキュメントの先頭に移動し、次に検索の条件を設定します。検索されるのは、Mosheがメモしたパターン(左括弧、「ed note:」、メモ、最後に右括弧)です。このシーケンスは、Findオブジェクトの.Textプロパティに割り当てられます。各括弧の前に円記号があることに注意してください。これらの円記号が含まれていない場合、Wordは括弧を検索パターンの制御文字と見なします。さらに、.MatchWildcardsプロパティがTrueに設定されているため、.Textプロパティは検索パターンとして扱われます。

一致するコメントが見つかるたびに入力されるDoWhileループでは、sTemp変数がコメントのテキストに設定されます。最初の9文字は削除され(これらは「(ednote:」)、最後の右括弧とともに削除されます。コメントはドキュメントから削除され、削除後に複数のスペースが残っている場合は、それらも削除されます。

最後に、sTemp変数のテキストを含む実際のコメントが追加されます。

このマクロを使用するときに覚えておくべきことが1つあります。それは、コメントパターンを正しく一致させることに依存します。これは、パターンに正確に従わないコメントがある場合、それらが見つからず、変換されない可能性があることを意味します(たとえば、左開き括弧の後にスペースがある場合)。さらに、ドキュメント内のコメントにコメント内の括弧内のコメント(つまり、コメント内にネストされた括弧があります)は、ワイルドカード検索で見つかったものと、その後コメントに含まれるものを台無しにします。

注:

私たちのやり方を知りたい場合このページ(または_WordTips_サイトの他のページ)で説明されているマクロについて、役立つ情報を含む特別なページを用意しました。

_WordTips_は、費用効果の高いMicrosoftWordトレーニングのソースです。

(Microsoft Wordは、世界で最も人気のあるワードプロセッシングソフトウェアです。)このヒント(1797)は、Microsoft Word 2007、2010、2013、および2016に適用されます。