1

Word 2007 で、単語を検索し、カーソルを 2 行上に移動し、3 つの '***' を挿入して、その行を強調表示するマクロを記録しました。見つかった単語の最初のインスタンスで機能します。検索したい単語のすべてのインスタンスをドキュメント全体で繰り返すのに苦労しています。

これは、記録したマクロからの出力です。「B」のインスタンスごとにアクションを繰り返す必要があります。

 Sub HighlightNewItems()
'
' HighlightNewItems Macro
'
'
    Selection.Find.ClearFormatting
    With Selection.Find
        .Text = "B,"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = True
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute
    Selection.MoveUp Unit:=wdLine, Count:=2
    Selection.MoveLeft Unit:=wdWord, Count:=1
    Selection.TypeText Text:="***"
    Selection.TypeParagraph
    Selection.EndKey Unit:=wdLine, Extend:=wdExtend
    Options.DefaultHighlightColorIndex = wdRed
    Selection.Range.HighlightColorIndex = wdRed
    Selection.MoveRight Unit:=wdCharacter, Count:=1
End Sub
4

1 に答える 1

1

次の構造をあなたの中に入れてみてくださいWith.Selection.Find

Do While .Execute
  '(logic that you want to apply after finding string)
Loop

あなたの場合、コードは次のようになります

Sub HighlightNewItems()
'
' HighlightNewItems Macro
'
'
    Selection.Find.ClearFormatting
    With Selection.Find
        .Text = "B,"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = True
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False

      Do While .Execute
        Selection.MoveUp Unit:=wdLine, Count:=2
        Selection.MoveLeft Unit:=wdWord, Count:=1
        Selection.TypeText Text:="***"
        Selection.TypeParagraph
        Selection.EndKey Unit:=wdLine, Extend:=wdExtend
        Options.DefaultHighlightColorIndex = wdRed
        Selection.Range.HighlightColorIndex = wdRed
        Selection.MoveRight Unit:=wdCharacter, Count:=1
      Loop 

    End With

End Sub
于 2013-08-20T16:37:02.217 に答える