• ベストアンサー

Wordの置換がマクロ記録できない

Word文書を作成しています。 複数の単語の、色を変えたいと思い。 置換をマクロで記録をしてみたのですが、実行してもなにも起こらないのです。 これはなぜなのでしょうか? ちなみに置換しているのは色のみで、文字はそのままです。 また他にもマクロのような一括でできる機能などはないのでしょうか? よろしくおねがいいたします。

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

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

こんばんは。 複数の単語を変換する場合は、ループにしてあげればよいのですが、以下は、文字の色を換えるマクロです。 >これはなぜなのでしょうか? 記録マクロではそのサポートがないからだけです。しょせん、記録マクロの限界です。 Sub FormatReplacing()   With ActiveDocument.Content.Find     .ClearFormatting     .Text = "あ"     .Wrap = wdFindContinue     .Font.ColorIndex = wdAuto '黒(自動)     With .Replacement       .ClearFormatting       .Text = "あ"       .Font.ColorIndex = wdRed '赤     End With     .Execute Replace:=wdReplaceAll   End With End Sub

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

以下は生半可な知識ですのでお許しを。 私はワード2002です。この書式に関連した検索置換の辺はバージョンで差が大きいかも。 (1)マクロの記録では文字のフォントの指定のコードは出てこない。下記コード参照。不思議だが。 編集ー置換のダイアログボックスの、検索と置換の文字をそれぞれ の機会に別に範囲指定して、書式ボタンをクリックすると、 検索の文字と置換後の文字の書式(をフオントの色)を指定できるから、そこで指定しておく。そして置換ボタンは、押さないで置く。 下記(2)の後マクロで実行する。 (2)文字を検索文字と置換後文字を同じにして(置換後の文字の書式だけ変えても)、マクロを実行しても効果が出なかった。それで一旦仮に(他に出現しないような)差しさわりのない別の文字に一旦置換で変えて、その後もう一度元に戻す置換をマクロで実行する。 そのとき、置換ダイアロウグの置換後の文字の(元の文字である)フォントの色を望みのものに設定しておく。 検索する文字列について、文字列+書式(フォント色) の両者が合わないと、マクロなりで実行した置換の効果は得られない から(当然だろうが)注意のこと。 ーー 以上だと、なんとも奇妙な点なのだが、他に正しい採るべき方法があるかもしれないのですが、参考までによろしく。 参考にマクロの記録結果はたぶん質問者と同じで Sub Macro54() Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "海" .Replacement.Text = "道" .Forward = True .Wrap = wdFindAsk .Format = True .MatchCase = False .MatchWholeWord = False .MatchByte = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchWildcards = False .MatchFuzzy = True End With Selection.Find.Execute Replace:=wdReplaceAll End Sub 組み込みの置換ダイアロウグをコードで出し各項目(例えば書式ボタンクリック以下)セットもパラメータで与えられると思うが、知識が十分でないので略。

関連するQ&A