テキストからコメントへの変換(Microsoft Word)
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に適用されます。