前回の記事 でも書きましたが、「検索と置換」のダイアログ(下記)で使えるワイルドカードと、Like演算子で使えるワイルドカードは異なりますので、注意が必要です。
(Word2003の「検索と置換」ダイアログ)
「検索と置換」ダイアログで使えるということは、マクロの一般的なFindオブジェクト(検索や置換に関係したもの)で利用できるというわけです。
実は、来週末の名古屋のワードマクロ勉強会 では、ワイルドカードについての勉強をするので、このタイミングでこの質問はあまりにもタイミングが良すぎます。
予習ついでに、Wordのワイルドカード検索と比較しながら、Like演算子で使えるワイルドカードについて簡単に書いておきます。
<目次>
Like演算子で使えるワイルドカード記号
? 任意の 1 文字
* 任意の数の文字(0文字以上の文字なので、何もない場合もあり)
# 任意の 1 文字の数字 (全角・半角の数字いずれも含みます)
[charlist] 文字列 (charlist) に指定した文字の中の任意の 1 文字
[!charlist] 文字列 (charlist) に指定した文字以外の任意の 1 文字
上記は、ヘルプの記載を少し変更したものですが、この5種類です。
なので、「検索と置換」ダイアログで使える繰り返し記号 {繰り返し数字} のような記載はできません。
たとえば、4桁の半角数字を指定する場合
■Like演算子
[0-9][0-9][0-9][0-9]
■検索と置換ダイアログ(ワイルドカードを使用する)
[0-9]{4}
または、別の記載を使えば、以下のようになります。
この場合には、厳密に半角数字のみを検索できないので、注意が必要です。
かっこや記号と一緒に検索すれば、検索対象を広げつつもある程度絞り込めますから、工夫次第で便利に使えますね。
■Like演算子
#### (4桁の全角・半角数字)
???? (任意の4文字→数字以外も含みますね)
■検索と置換ダイアログ(ワイルドカードを使用する)
????
?{4}
こんなかんじで書けます。
「検索と置換」ダイアログでワイルドカードを用いた場合には、「#」の記号はワイルドカードとして使えません。
よって、任意の1文字として「?」を使っています。
・・・追記 16-07-26・・・・ 上記では、[検索と置換]ダイアログボックスにて「ワイルドカードを使用する」で 検索する条件を探りました。ワイルドカードを使わずに、特殊文字で探す方法もあります。 ■検索と置換ダイアログ(検索オプションをすべてオフ) ^#^#^#^# 上記の検索により、半角または全角の数字4桁を検索できます。 ・・・・・・・・・・・・・・
ワイルドカードの使い方に慣れるために
「誰も教えてくれなかった Word効率アップ術」に、Wordのワイルドカード検索・置換の事例が多数(60以上)掲載されています。
ぜひご覧ください。
実際に入力して体験するとより理解が深まると思います。
参考記事
知りたい操作がすぐわかる標準Word2003 全機能Bible (P.732にワイルドカードの説明あり)
Like演算子 (プログラムを掲載しました)
-
4. Re:脚注番号の置換についてお知恵を拝借させてください
>おちょこちょいさん
おはようございます。
図の参照への回答の前に、こちらに回答してしまいました。脚注番号というものは初めてで、面白そうだったので(笑)。
さて、昨夜、サッカーを観戦しながら書いたコードです。
集中力が切れながらだったので、どうでしょうか。
最初はうまくいっていても、繰り返すうちに誤動作をするようになって。。。
原因追及する余裕がなく(サッカーに気持ちが集中していたので)、無理矢理作ったらプログラムが長くなりました。
結局、今回紹介する形になりました。
括弧をとる作業は、どろくさくカーソルを移動しながらやっています。
もっと簡単な方法あるかも。
ぜひ、試運転して、動作状況をご報告ください。
-
3. 脚注番号の置換についてお知恵を拝借させてください
新田さん、こんにちは。
Wordで脚注(番号形式)を挿入した後、これに
(丸かっこ)をつけるにはどうしたらよいか格闘しています。ネットで一般に公開されているのは、置換を使って
^f → 置換する検索文字
(^&)→置換文字列を()でくくるという方法なのですが、これだと複数回にわたって実行すると、
((番号))や(((番号))
のようにどんどんかっこが増えてしまい、
いささか実用性に欠けます。そこで、検索文字列の「冒頭が"("でない」と
「末尾が")"でない」という否定指定をしたいと思ったのですが、
ワイルドカードの[!]というのは使用目的が違うようで、うまくできませんでした。もし、任意の冒頭文字と末尾文字を否定する方法があれば、
お知恵を拝借させてください。ちなみに、^f(脚注番号)を(^&)に置換すると、
私の環境では本文中の番号は(1)と置換されるのですが、
脚注文字列のほうはなぜか置換されません...。よいアイディアがございましたら、よろしくお願いいたします。
コメント