• ベストアンサー

Wordマクロで目に見える文字列だけを探すには

Word2000のマクロで、目に見える文字列だけ(つまり空白・改行・タブなどは対象外)を探す方法はありますか。 操作をマクロに記録してみましたが、「任意の1文字」を選ぶと、改行とかの「目に見えない」文字まで検索されてしまいます。 そこで、 Selection.Find.ClearFormatting With Selection.Find .Text = "^?" の "^?" を、「目に見える文字列」を指す内容に変えられますか? それが無理なら、何かほかに簡単な方法はないでしょうか。 マクロは素人なので、複雑なことはできないです。 よろしくお願い致します。

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

  • ベストアンサー
  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.4

ANo.3 です。 .MatchWildcards = True です。

toyboys
質問者

お礼

#3と#4 の通りに書いてうまくいきました。ありがとうございました! [!^13^9^32]の意味はわかってないんですが、追々勉強したいと思います。。

その他の回答 (4)

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

こんにちは。 Word VBAで、正規表現検索を組める力があるなら、それで出来るでしょうけれども、記録マクロ程度のレベルでは、とても無理だと思います。経験者さんたちが、一杯いらっしゃるようですから、その方たちにお願いしても良いと思いますが、私には、最初の質問さえ良く分からないですね。 一体、「目に見える文字だけを探す」ということは、どういうことなのでしょうか。見つけたら、どうするのでしょうか。 ベタファイルを作る、抜き出して、別のテキスト・ファイルにする、蛍光ペンで色を塗る? など。

toyboys
質問者

お礼

アドバイスありがとうございます。#3,#4の方のご回答により解決しました。すぐに締め切らなくてすみません。 見つけた後に行いたい処理はいろいろあって、とにかく汎用性のある「見つけ方」が必要でした。

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.3

たとえば、 .Text = "[!^13^9^32]" くらいじゃないですか。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

Sub test023() Dim wd As Object For Each wd In ActiveDocument.Words MsgBox wd Next End Sub をやってみて、質問者の要望・ニーズと照らしてどうですか。 自信ないが。 語間で何か空白らしいものを表示するので、省こうとしたがうまくいかなかったがとりあえず。 ーー ワードVBAなど(=情報が少ないのに)難しいことをやりますね。 === ただこういう質問は、全体のニーズを(どういうことをやりたい中での一環か、)質問の中で説明をしておいたほうが良いと思う。 「それならこうで」という答えがひょっとして出るかもしれない。

toyboys
質問者

お礼

わざわざ試してくださってありがとうございます。今後のためにやってみますね。

noname#79209
noname#79209
回答No.1

正規表現で出来ませんかね。 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 とか... ご参考まで...

toyboys
質問者

お礼

補足の欄にお礼を書いてしまいました。失礼しました。

toyboys
質問者

補足

ご回答ありがとうございます。正規表現はテキストエディタ等ではよく使うんですが、VBAは素人なので…今後勉強してトライしたいです。

関連するQ&A