• ベストアンサー

WORDの文字をマクロで色替えするには?

WORDの文章で文字検索ウインドウ枠内に入力した文字全てをツールバーで指定した色に変える作業を文末まで自動的に繰り返したいのですが、このとき FOR文をどういう式としたらよいですか? 特に文末でやめるには? また FOR の変数の種類は? 1回のみの色替えのマクロ記録は成功しておりますが、文末まで自動で行いたいのです。よろしくお願いします。

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

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

マクロの記録が使えないですか。 文章全体を範囲指定 編集ー置換ー検索する文字列ーー(例)東京 書式(下に方の書式ボタンを押す。そのとき、検索する文字列のボックスをFOCUSしておくこと) 自動 置換後の文字列ーー(例)東京(同じ文字列を指定) 書式 (例)赤色 すべて置換 ーーー やってみると、マクロの記録が出来ましたよ。 結果見れば判るとおり、FORNEXTやFOR EACHを使わないやり方で、これがVBAの理想ですから。wdReplaceAllで繰り返し的処理をやってくれるのですから。

greenhope
質問者

お礼

マクロ化までしなくても、ご指摘の置換だけで可能になりました。回答ありがとうございました。

その他の回答 (2)

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

こんにちは。 >FOR文をどういう式としたらよいですか? カウントしなければ、必要ないです。 >文字検索ウインドウ枠内に入力した文字全てをツールバーで ツールバーで指定するという意味が良く分かってはいませんが、もしかしたら、蛍光ペンのことでしょうか。 それと、残念ながら、記録マクロで取れたと思っても、書式の色のプロパティが入らないようですので、そのマクロは有効な動きをしません。ただ、ダイアログを呼び出し、文字を入れるだけの作業なら、ショートカットでよいと思います。 '------------------------------------------- 'ThisDocument モジュール '------------------------------------------- '書式バーの蛍光ペンでは、黄色がデフォルトになっています。 Sub FormatReplacing() Dim Ret As Variant   Selection.HomeKey Unit:=wdStory   Ret = InputBox("検索用語を入れてください。")   If StrPtr(Ret) = 0 Or Ret = "" Then Exit Sub      With ActiveDocument.Content.Find     .ClearFormatting     .Text = Ret     .Wrap = wdFindContinue     .MatchFuzzy = True     .MatchWildcards = False     .Font.ColorIndex = wdAuto     With .Replacement       .ClearFormatting       .Text = "^&"       .Highlight = True '蛍光ペン       '.Font.ColorIndex = wdRed ''フォント     End With     .Execute Replace:=wdReplaceAll   End With End Sub

greenhope
質問者

お礼

詳しいマクロを紹介いただきありがとうございました。

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.1

VBEのヘルプから、Find.Foundプロパティのサンプルコードを使ってDo・・・Loopしてみました。 Sub test1() Selection.HomeKey Unit:=wdStory With Selection.Find .ClearFormatting Do .Execute findText:="あ", Format:=True, Forward:=True If .Found = True Then Selection.Font.Color = wdColorRed Else Exit Do End If Loop End With End Sub

greenhope
質問者

お礼

詳しいマクロを紹介いただきありがとうございました。

関連するQ&A

  • ワード内の色がついた文字をマクロ(VBA)で削除したい

    お世話になります。 色指定で置換処理を実行するマクロを作成したいと思っています。 置換¥オプション¥書式¥色指定で空白と置換 の作業を 「マクロを記録」の状態で実行したのですが、マクロに記録されません。。。 VBAに追記する形、どのような形でもいいのでマクロで色指定も含めた置換方法を教えていただけないでしょうか? 何卒よろしくお願いします。

  • ワードのマクロ

    いつもお世話になっております。 マクロ初心者の上に今回はワードで使いたく。 ワード(2016)の定型書式の特定の場所(行)をファイル名にして所定のフォルダーに保存まで、をマクロにしたいのですが。 少しいじってみたのですが自動記録ではファイル名(場所)のコピーが出来ないことや、出来れば2か所(2行)をファイル名にして指定のフォルダーに保存したいのです。

  • Word で文字の色が変わってしまいました

    Word2007です。文字を入力しているとき、何かのはずみで文字の色が赤色に変わってしまいました。フォントで文字の色は自動で黒になっています。これを赤でなく元の黒色に戻したいのですが、どうしたらいいでしょうか。

  • Word 2007でのマクロ保存方法

    Word XPからWord 2007に乗り換えて、マクロの保存方法が分からず困っています。 XPでは、マクロを記録するだけで文書を閉じる時に自動的にNormal.dotテンプレートにマクロが保存されたようなのですが、Word 2007ではWordを終了する(あるいはPCの電源を落とす)と、記録したマクロが消えてしまいます。 Word 2007では、自動的にNormal.dotテンプレートにマクロを保存することはできないのでしょうか? なお、システムはWindows 7です。 よろしくお願いします。

  • ワード2010、文字色切り替えのショートカットキー

    ワードで文章を作っているのですが、黒の他にオレンジ色(RGB:255.192.0)を使う事が多く、文章を入力しながら二色を切り替えて使いたいと思っています。 色を変える時に、ショートカットキーでフォント色を変更できれば、わざわざ画面上部のツールバーから変更する必要がなくなるのではないかと思うのですが、そのやり方がよくわかりません。 文字を入力後に文字列を選択して、色を変更するというやり方でもいいのですが、文字を選択する手間がかかります。文字を入力しながら、適宜、文字色を変更できるやり方を、ショートカットキーでもマクロでもいいので、教えてください。よろしくお願いします。 色は上記のオレンジ色を使いたいです。

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

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

  • wordでマクロ

    wordで「ある文字がある行の前に1文挿入するマクロをつくりたいのですが、どうしたらよろしいでしょうか?

  • word2007・2010で文字数を自動表記させる

    word2007・2010を使っています(デスクトップが2010、ノートが2007で、両者を使い分けています)。 word2007・2010で、ワードの文書内に文字数を自動表記させる方法はありませんか? つまり…、 Q1 問題文(400字) A  ~。 Q2 問題文(300字) A  ~。 という文書を作っているのですが、Aの部分を推敲し字数を確認する際、毎回、範囲指定→校閲→文字カウントと調べるのが面倒です。 Aの部分だけをいじると、自動でAの文末に文字数が表記されるような方法があればとても便利なのですが、そのようなことはできませんか? ご存知の方、教えてください。

  • Wordの文字の色

    OS10.3でOffice XのWordを使っているのですが,フォントの設定で文字の色を自動にしても,黒にしても,表示される文字の色が薄い灰色になってしまうのですが,どうすれば黒で表示されるのでしょうか?

    • 締切済み
    • Mac
  • WORD2000でのマクロ

    WORD2000を使っています。 オートシェイプのリボンを描き、その中に文字を入れるマクロを作りたいのですが、 マクロ記録中は、マウスでドラッグなどは効かないですよね。 どうやって作ったらいいのか困っています。 VBAの言語は理解しかねますので、 出来れば、言語でなく、操作でのやり方を教えて下さい。 宜しくお願い致します。

専門家に質問してみよう