With CreateObject(“VBScript.RegExp”)
.Pattern = strReg
‘大文字小文字を無視(区別する→False)
.IgnoreCase = True
‘文章全体
.Global = True
Set reMatch = .Execute(Rng.Value)
‘マッチしていれば、1以上の値が返ってくる
If reMatch.Count > 0 Then
正規表現テスト = “マッチ(” & reMatch.Count & “個 最初にマッチした文字:” & reMatch(0).Value & “)”
Else
正規表現テスト = “マッチしません(アンマッチ)”
End If
End With
End Function
上記の「正規表現テスト」Functionプロシージャを下記画像のように組み込んで使用します。
(ちなみに上記のコメントの「変数:引数格納用」は日本語文字を入れると、変数入力のたびにIMEの切り替えが面倒だったのでこのようにしているだけです)
こうすることで正規表現を疑似的?に確認できます。実際にはマッチしたかどうかだけではもったいない?ので、このプロシージャでは各正規表現で最初にヒットした文字列も表示しました(本当は全部表示したかったのですが、マッチしたときにそのマッチ数が可変となり、ループしないといけなそうだったのでやめました。ただ、上記ではやっていませんが、最後にマッチした文字列も簡単に表示できそうです)。
ざっくりテストした表を載せますが、その時たまたまですが、このプロシージャで「空白の正規表現」を判定すると「マッチ」になりました(表6行目)。最初の文字列が「0文字目」?と思われる点が正規表現の仕様として気になりました(実際の運用ではこういう使い方はなさそうですが)。
実際の作業で、より利便性良く使うという意味では、アドイン化してフォームなどを表示するなどもいいかもしれません。