【Word】Like演算子では、\記号は単なる文字列の扱い

記事(【コード】「段落番号」のある段落のアウトラインレベルを自動で設定するWordマクロ(2) )へ水野麻子さんから以下の質問をいただきました。

Wordのワイルドカード検索で条件式の文字を普通の文字扱いにするには、直前に\を付ける形で記述できます。

[0001]のような4桁の数字なら、

\[[0-9]{4}\]

結論からいうと、

\記号は、Like演算子では単なる文字列です。また、繰り返し記号{数値}はLike演算子では使えません。

よって、ご質問いただいたような記述(検索と置換ダイアログでもちいるもの)は、Like演算子では使えません。

例で説明します。

(1)角かっこ(スクウェアブラケット)つきの半角4桁数字のパターン

■Like演算子

[[][0-9][0-9][0-9][0-9][]]

■検索と置換ダイアログ

\[[0-9]{4}\]  (水野さんからご質問いただいたもの)
\[[0-9][0-9][0-9][0-9]\] (上記を少し変形)
[[][0-9][0-9][0-9][0-9][]] (Like演算子のもの)

以下は、例外ですが、「検索と置換」ダイアログでは半角の\は、\\としても検索されないことがあるので、[\\]としないといけません、という例です。(知りたい操作がすぐわかる標準Word2003 全機能Bible のP.734にこの重要な記載あり)

(2)\200や\1,500、¥50000などの金額に関する文字列を検索する場合のパターン

→先頭の円記号と1桁数字を探すことにします。

■Like演算子

以下の例のように、\を普通の文字列として扱っています。

\[0-9] (半角の場合)
¥[0-9] (全角の場合)
[\¥][0-90-9] (半角・全角両方の場合)

■検索と置換ダイアログ

以下の例のように、\を文字列として扱うために、[\\]と指定しています。ややこしい!

[\\][0-9] (半角の場合)
¥[0-9] (全角の場合)
[\\¥][0-90-9] (半角と全角両方とも)

まとめ

Like演算子のワイルドカードとWordの通常の検索のワイルドカードは異なります。

使い分けが必要ですね。

なお、上記は簡単にするためにあまりたくさんの例を示しませんでしたが、半角数字4桁は別の記載でも探すことができます。

Like演算子におけるワイルドカードの利用例」をご覧下さい。

トップへ戻る