• 締切済み

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

Wordで大量の文字を青い太字にしたいのですが、マクロの組み方が分かりません。 置換したい文字(例):計算力 実力講座 カレンダー ↑この文字を、青い太字にしたいです。 (置換したい文字が、10,000程度あります) WinXP Word2007を使っています 非常に困っております。 何卒、よろしくお願いします。

みんなの回答

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

こんばんは。 >ところどころ、文字が置換しないところもありますが、今まで手作業でやっていたのに比べると大幅に効率がアップしました。 #1さんの  Open T_File For Input As #T_No すこし気になっていたのですが、このインポートする部分をご自身で加工できるなら、後は、置換しないところがあるとはいっても、どのマクロも変わらないはずです。後は、検索する時に、全角・半角の区別をしないなどのオプションを付けてあげるだけです。もともと、私は、そのインポート部分がはっきりしていなかったので、コードを出さなかったわけです。ただ、ご自身でその部分が書けるなら、もう、私が立ち入る話ではないようです。

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

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

t3masa
質問者

お礼

ありがとうございます。 ところどころ、文字が置換しないところもありますが、今まで手作業でやっていたのに比べると大幅に効率がアップしました。 更に良い方法がありましたら、お教えいただけますと幸いです。 よろしくお願いいたします。

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

#2の回答者です。 もう一度、質問文・レスを読み直しましたが、検索される語が1万語なのか、検索語が1万語なのか、良く分かりませんでした。Wordだというので、Word上で、検索語が1万語だと辻褄が合わないような気がしました。もし、数語の検索語なら、手動で行っても十分でしょう。 #1さんのマクロで問題ないのなら、私は、マクロを書くことはないと思います。ただ、Wordマクロは、Excelのようにプロパティはなるべく省略しないほうがよいと思います。.Find.ClearFormatting しても、クリアしないことがあります。

t3masa
質問者

お礼

質問文が分かりにくくてすみません。 置換したい言葉が、1万語程度あるということになります。 また、マクロに関するアドバイスありがとうございます。 Wordマクロはまた違うんですね。 勉強になりました。

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

こんばんは。 >置換したい文字が、10,000程度あります どのような保存スタイルなのですか?Excelですか?CSV ファイルですか?Access ですか?

t3masa
質問者

お礼

ありがとうございます。 保存スタイルは、Wordファイルのdocもしくはdocxになります。 よろしくお願いいたします。

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

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
質問者

お礼

ありがとうございました。 おかげさまでうまく、マクロを走らせることが出来ました。 今後、非常に助かります。