• 締切
  • すぐに回答を!

マクロを使い、特定の文字を青く太字で置換したい

  • 質問No.5127972
  • 閲覧数1124
  • ありがとう数8
  • 気になる数0
  • 回答数5
  • コメント数0

お礼率 80% (4/5)

Wordで大量の文字を青い太字にしたいのですが、マクロの組み方が分かりません。

置換したい文字(例):計算力 実力講座 カレンダー
↑この文字を、青い太字にしたいです。
(置換したい文字が、10,000程度あります)

WinXP Word2007を使っています
非常に困っております。
何卒、よろしくお願いします。

回答 (全5件)

  • 回答No.5

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

こんばんは。

>ところどころ、文字が置換しないところもありますが、今まで手作業でやっていたのに比べると大幅に効率がアップしました。

#1さんの
 Open T_File For Input As #T_No

すこし気になっていたのですが、このインポートする部分をご自身で加工できるなら、後は、置換しないところがあるとはいっても、どのマクロも変わらないはずです。後は、検索する時に、全角・半角の区別をしないなどのオプションを付けてあげるだけです。もともと、私は、そのインポート部分がはっきりしていなかったので、コードを出さなかったわけです。ただ、ご自身でその部分が書けるなら、もう、私が立ち入る話ではないようです。
  • 回答No.4

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

こんにちは。

この質問は解決したのでしょうか?
私は、コードを書かなかったけれども、果たして出来ましたでしょうか。実際、1万語がWord上に、そのままあるものを、取り出すのは、書式を換えるのとは別の技術が必要だと思います。どのように単語が置いてあるのかも問題です。Excelですと、セルに対して数値的な処理が可能ですが、Wordにそのまま載せたままでは、うまく行かないように思います。
お礼コメント
t3masa

お礼率 80% (4/5)

ありがとうございます。
ところどころ、文字が置換しないところもありますが、今まで手作業でやっていたのに比べると大幅に効率がアップしました。
更に良い方法がありましたら、お教えいただけますと幸いです。
よろしくお願いいたします。
投稿日時:2009/07/24 17:49
  • 回答No.3

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

#2の回答者です。

もう一度、質問文・レスを読み直しましたが、検索される語が1万語なのか、検索語が1万語なのか、良く分かりませんでした。Wordだというので、Word上で、検索語が1万語だと辻褄が合わないような気がしました。もし、数語の検索語なら、手動で行っても十分でしょう。

#1さんのマクロで問題ないのなら、私は、マクロを書くことはないと思います。ただ、Wordマクロは、Excelのようにプロパティはなるべく省略しないほうがよいと思います。.Find.ClearFormatting しても、クリアしないことがあります。
お礼コメント
t3masa

お礼率 80% (4/5)

質問文が分かりにくくてすみません。
置換したい言葉が、1万語程度あるということになります。
また、マクロに関するアドバイスありがとうございます。
Wordマクロはまた違うんですね。
勉強になりました。
投稿日時:2009/07/16 12:41
  • 回答No.2

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

こんばんは。
>置換したい文字が、10,000程度あります

どのような保存スタイルなのですか?Excelですか?CSV ファイルですか?Access ですか?
お礼コメント
t3masa

お礼率 80% (4/5)

ありがとうございます。
保存スタイルは、Wordファイルのdocもしくはdocxになります。
よろしくお願いいたします。
投稿日時:2009/07/16 02:50
  • 回答No.1

ベストアンサー率 33% (959/2868)

Word2002で試しました。

テキストファイル(abc.txt :Wordファイルと同じフォルダ)に、
該当する単語を一列に書き込んでおく。
(例):
計算力
実力講座
カレンダー

Sub try()
 Dim myRange As Range
 Dim T_File As String
 Dim T_No As Long
 Dim tmp As String

 T_File = ThisDocument.Path & "\abc.txt" 'abcというテキストファイル
 T_No = FreeFile

 Open T_File For Input As #T_No

 Do Until EOF(T_No)
    Set myRange = ActiveDocument.Content
    Input #T_No, tmp

    Do While (myRange.Find.Execute(FindText:=tmp, Forward:=True)) = True
       If myRange.Find.Found = True Then
          myRange.Font.Color = wdColorBlue
          myRange.Font.Bold = True
       End If
    Loop
 Loop
 Close #T_No
 Set myRange = Nothing
End Sub

Word2007は持っていないし、今日初めてWordVBA作ったのでで的はずれかも知れませんが、
その場合はごめんなさい。
お礼コメント
t3masa

お礼率 80% (4/5)

ありがとうございました。
おかげさまでうまく、マクロを走らせることが出来ました。
今後、非常に助かります。
投稿日時:2009/07/16 02:00
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
AIエージェント「あい」

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

関連するQ&A

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

ピックアップ

ページ先頭へ