アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

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

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

A 回答 (5件)

こんばんは。



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

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

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

こんにちは。



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

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

お礼日時:2009/07/24 17:49

#2の回答者です。



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

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

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

お礼日時:2009/07/16 12:41

こんばんは。


>置換したい文字が、10,000程度あります

どのような保存スタイルなのですか?Excelですか?CSV ファイルですか?Access ですか?
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/07/16 02:50

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作ったのでで的はずれかも知れませんが、
その場合はごめんなさい。
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/07/16 02:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!