正規表現関数を作ってみよう!@Excel (1)
Excelの七不思議の一つが,「なぜか頑なに正規表現をサポートしない」なんですよね――検索でも関数でも.
あれほど強力な技術をなぜ採用しないのか,ちょっと理解ができません.
理由の一つが,「正規表現を詳解しようと思ったら350-500ページもある本(↓)でぶん殴る勢いになるから」だったりしてw
Excelは多くの初級者も使うアプリケーションですからね.余計な手間をかけたくないのかも.
なお,LibreOfficeでは正規表現はサポートしているんですよね.
LibreOfficeの数少ない(‥!)メリットだと思います.
なければ作ろう,正規表現関数
ところが,実はVBAでは正規表現は使えるのです.
つまり,VBAでユーザ定義関数を作り,それをワークシート上から呼び出すことで,正規表現関数は自前で実装できてしまうのです*1.
そこまで分かれば話は簡単だ――さぁ,作ろう.
前準備
先程「VBAでは正規表現は使える」とは書きましたが,すっぴん――そのままの状態では使えません.
「Microsoft VBScript Regular Expressions 5.5」なるライブラリを参照設定してやる必要があります.
続いて,てきとーに標準モジュールを挿入し,
そのモジュールの宣言セクション*2に
Public re as New RegExp
と記述しておきます.以上,前準備終わり.
次へ進む前に
以下の資料は読んでおいた方がいいかも.
正規表現って,実装によって使える・使えない表現があるし.
- VBAで正規表現を使う:CodeZine(コードジン)
- 正規表現とは | Microsoft Docs
- Regular Expression (RegExp) オブジェクト | Microsoft Docs
以下続く