【Word】【VBA】【マクロ】文字列の置換 その2(ワイルドカード まとめ)
Word VBA マクロ でのワイルドカードの使用方法をまとめました
【ワイルドカードOnで使用】(.MatchWildcards = True )
記号 |
意味 |
使い方 |
? |
任意の1文字 |
第?条 ○:第五条、第百条 ×:第十二条 |
* |
任意の文字列 |
第*条 ○:第五條、第百条、第十二条 但し、広範囲に検索してしまうので、 あまり使わない |
< > |
単語の先頭 単語の末尾 |
<第 ○:記号の直後/直前の「第」 ×:文字の直後/直前の「第」 |
[*] |
* のいずれか1文字 |
[イロハニホヘト] ○:イ~トまで、それぞれ1文字 *=未記入にするとエラー |
[☆-★] |
☆~★ のいずれか1文字 |
[0-9] :0~9 のいずれか1文字 [あ-ん] :あ~ん のいずれか1文字 多分、「ぁ」「っ」は検索しない [ぁ-ん] :「ひらがな」全てのいずれか1文字 |
[!*] |
*を除く1文字 |
[!0-9] :0~9をのぞく1文字 |
{N} |
直前の文字を N回繰り返し |
[0-9]{3} :3桁の数字表記 000 ~ 999 |
{N,} |
直前の文字を N回以上繰り返し |
[0-9]{2,} :2桁以上の数字表記 00 ~ 99 ~ 000 ~ 、、、 |
{N,M} |
直前の文字を N~M回繰り返し |
[0-9]{2,5} :2桁~5桁の数字表記 00 ~ 99 ~ 00000 ~ 99999 |
@ |
直前の文字を 1回以上繰り返し |
[0-9]@ :1桁以上の数字表記 0 ~ 9 ~ 00 ~ 99 ~、、、 {1,} と同じ意味となります |
(***) |
式、***を グループ化 |
第([123])([4-7]{2,3})条の([1-9]{1}) :第144条の1 ~ 第3777条の9 これは特に置換で良く使います |
^13 |
改行(補足) |
改行文字を検索 (これはワイルドカードOFFでも使用可) |
^p |
改行(補足) |
(ワイルドカードOff時の改行文字) (置換後の改行指定には こちらを使用するようにする) |
【ワイルドカードの検索文字をそのまま置換後に使用する場合】
\N |
N番目の式を そのまま使う |
検索 :第([12])([4-7]{2,3})条の([1-9]{1}) 第144条の1 ~ 第2777条の9 置換 :第\1\2号の0\3 第144号の01 ~ 第2777号の09 |
また、ワイルドカード使用時(.MatchWildcards = True とする場合)には、
- ・大文字小文字の区別 => できない
- ・半角と全角の区別 => できない
- ・あいまい検索 => (日)(英)ともできない
- ・接頭辞、接尾辞の一致 => 使えない
- ・英語の異なる活用形検索 => 使えない
ため、同時に設定しておかないと、
その前のチェックによってはエラーがでるようですね、なので、
.MatchCase = False ‘ 大文字小文字区別しない
.MatchWholeWord = False ‘ 完全一致単語(英)
.MatchByte = False ‘ 半角全角区別しない
.MatchAllWordForms = False ‘ 活用形検索
.MatchSoundsLike = False ‘ あいまい検索(英)しない
.MatchFuzzy = False ‘ あいまい検索(日)しない
.MatchWildcards = True
と同時記載しておいた方がよいようですね