- ベストアンサー
Wordマクロで目に見える文字列だけを探すには
Word2000のマクロで、目に見える文字列だけ(つまり空白・改行・タブなどは対象外)を探す方法はありますか。 操作をマクロに記録してみましたが、「任意の1文字」を選ぶと、改行とかの「目に見えない」文字まで検索されてしまいます。 そこで、 Selection.Find.ClearFormatting With Selection.Find .Text = "^?" の "^?" を、「目に見える文字列」を指す内容に変えられますか? それが無理なら、何かほかに簡単な方法はないでしょうか。 マクロは素人なので、複雑なことはできないです。 よろしくお願い致します。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
ANo.3 です。 .MatchWildcards = True です。
その他の回答 (4)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 Word VBAで、正規表現検索を組める力があるなら、それで出来るでしょうけれども、記録マクロ程度のレベルでは、とても無理だと思います。経験者さんたちが、一杯いらっしゃるようですから、その方たちにお願いしても良いと思いますが、私には、最初の質問さえ良く分からないですね。 一体、「目に見える文字だけを探す」ということは、どういうことなのでしょうか。見つけたら、どうするのでしょうか。 ベタファイルを作る、抜き出して、別のテキスト・ファイルにする、蛍光ペンで色を塗る? など。
お礼
アドバイスありがとうございます。#3,#4の方のご回答により解決しました。すぐに締め切らなくてすみません。 見つけた後に行いたい処理はいろいろあって、とにかく汎用性のある「見つけ方」が必要でした。
- okormazd
- ベストアンサー率50% (1224/2412)
たとえば、 .Text = "[!^13^9^32]" くらいじゃないですか。
- imogasi
- ベストアンサー率27% (4737/17069)
Sub test023() Dim wd As Object For Each wd In ActiveDocument.Words MsgBox wd Next End Sub をやってみて、質問者の要望・ニーズと照らしてどうですか。 自信ないが。 語間で何か空白らしいものを表示するので、省こうとしたがうまくいかなかったがとりあえず。 ーー ワードVBAなど(=情報が少ないのに)難しいことをやりますね。 === ただこういう質問は、全体のニーズを(どういうことをやりたい中での一環か、)質問の中で説明をしておいたほうが良いと思う。 「それならこうで」という答えがひょっとして出るかもしれない。
お礼
わざわざ試してくださってありがとうございます。今後のためにやってみますね。
正規表現で出来ませんかね。 http://arrow3.way-nifty.com/shige/2006/07/vba__fc44.html MyRegExp.Pattern = "\s" 或いは以下のDLLを組み込むことで可能です。漢字にも対応しています。 http://www.hi-ho.ne.jp/babaq/bregexp.html If Match("/[\t\n\r\f\a\e\s]/k",.Text) = "1" Then とか... ご参考まで...
お礼
補足の欄にお礼を書いてしまいました。失礼しました。
補足
ご回答ありがとうございます。正規表現はテキストエディタ等ではよく使うんですが、VBAは素人なので…今後勉強してトライしたいです。
お礼
#3と#4 の通りに書いてうまくいきました。ありがとうございました! [!^13^9^32]の意味はわかってないんですが、追々勉強したいと思います。。