• ベストアンサー

WORD 置き換えマクロ こんなのできますかあ?

<ゴ>あいうえお<ミ> <ゴ>と<ミ>で囲まれた部分の書体を変えたいと思いますが、マクロでできますでしょうか? 普通に置き換えでやるとうまくいくのですが、マクロに登録してやると、文字列が削除されてしまいます。 どうぞ、よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんにちは。 このパターンが『<ゴ>と<ミ>』が、本当に、正しければ、以下のようなコードでできるはずです。ただ、半角であったりしたら、パターンを書き換える必要があります。 '---------------------------------------------------- Sub PickupWordChangFormat() Dim objRegExp As Object Dim mySelection As Selection Dim Matches As Object Dim Match As Object Dim myWords() As String Dim i As Long Set objRegExp = CreateObject("VBscript.RegExp") Selection.HomeKey Unit:=wdStory Selection.EndKey Unit:=wdStory, Extend:=wdExtend Set mySelection = Selection   With objRegExp     .Global = True     .IgnoreCase = True     'ここのパターンで検索が決まります。     .Pattern = "<ゴ>([^<]+)<ミ>"     Set Matches = .Execute(mySelection)   For Each Match In Matches        ReDim Preserve myWords(i)        myWords(i) = .Replace(Match.Value, "$1")        i = i + 1   Next Match   End With   For i = LBound(myWords) To UBound(myWords)    s_WordFinding myWords(i)   Next   Selection.HomeKey Unit:=wdStory End Sub Sub s_WordFinding(ByVal myString As String) Dim myRange As Range Selection.Find.ClearFormatting  With Selection.Find   .Text = myString   .Replacement.Text = ""   .Forward = True   .Wrap = wdFindContinue   .Format = False  End With    Selection.Find.Execute    Set myRange = Selection.Range    s_FormatChanging myRange End Sub Sub s_FormatChanging(ByVal myRange As Range) With myRange    '書式変更部分    .Font.Bold = True '太字    .Font.ColorIndex = wdBlue '青 End With End Sub

coral_japan
質問者

お礼

できました!! どうもありがとうございました。 これで、仕事の能率が400%アップします。 また、なにかありましたら、教えてGOOださい。(^。^)

関連するQ&A