Excelとワイルドカード/正規表現検索
じゃー自分で作ればいいじゃん、って言うか、私は作ったけど、一応Excelの検索にもワイルドカードぐらいは実装されている。
ちょっとした検索ぐらいならこれで事足りるし、FIND関数やIF関数でも(当然COUNTIF関数でも)使えるので、実用性が全くないわけではない。ないわけではないんだけどさ。やっぱさ、\dとか\wとか量指定子とか後方参照とかキメたいじゃん?っていうか、置換で後方参照ないのは致命的じゃん?
そんなわけで早速Excel-DNAで、と言いたいところだけど、サンプルコードが手元にないのでたまにはVBAとか言うクソ言語の話をしましょう。
VBAには正規表現を扱えるクラスはありませんが、VBScriptの方にはあります。RegExpです。もうちょっといい名前はなかったのか?
使い方やメタ文字に関してはこっちの方が参考になると思います。後方参照が$nではなく\nであることを除けば特に違和感なく使えるはずです。流石に先読み/戻り読みとかは実装されてないっぽいですが。
参照設定は「Microsoft VBScript Regular Expressions 5.5」です。early bindingはちょっと…って人はCreateObject(“VBScript.RegExp”)でもOK。まぁVB6.0が入ってれば動くからlate bindingする理由ってほとんどないと思いますけど。