• ベストアンサー
  • 暇なときにでも

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

  • 質問No.5321541
  • 閲覧数1084
  • ありがとう数3
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 74% (476/640)

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

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

  • 回答No.2
  • ベストアンサー

ベストアンサー率 28% (4497/16039)

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

お礼率 74% (476/640)

マクロ化までしなくても、ご指摘の置換だけで可能になりました。回答ありがとうございました。
投稿日時:2009/09/28 22:31

その他の回答 (全2件)

  • 回答No.1

ベストアンサー率 56% (669/1189)

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

お礼率 74% (476/640)

詳しいマクロを紹介いただきありがとうございました。
投稿日時:2009/09/28 22:34
  • 回答No.3

ベストアンサー率 57% (3570/6233)

こんにちは。

>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

お礼率 74% (476/640)

詳しいマクロを紹介いただきありがとうございました。
投稿日時:2009/09/28 22:33
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,600万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ