VBAで正規表現を利用する

VBAでも正規表現が利用できます。

事前に参照設定を行う

正規表現を利用するにはVBScriptのRegExpクラスを利用します。

CreateObject関数で書くこともできますが、参照設定をした方が便利です。

なお、RegExpはRegular Expressionの略ですね。

正規表現の参照設定の方法は次の通りです。

  1. VBAの画面でツールメニュー→参照設定 を選択します。
  2. 参照設定ダイアログで「Microsoft VBScript Regular Expressions 5.5」にチェックを付けます。
  3. OKボタンを押して閉じます。

これで設定は終わりです。

VBAでの正規表現の書き方

RegExpクラスを使う際には以下の流れを守る必要があります。

  1. まず、検索範囲(Globalプロパティ)、大文字小文字の扱い(IgnoreCaseプロパティ)、検索文字列(Patternプロパティ)を設定します。
  2. そのあとに検索を実行(Executeメソッド)します。
  3. 検索結果を判定します。(MatchCollectionコレクション、Matchオブジェクト、SubMatchesコレクション)

実行結果は以下の通りです。



注意点:MatchesではなくMatchCollectionが正しい

以下のMSDNにExecuteメソッドについて戻り値はMatchesコレクション、と書いてありますが、正しくは MatchCollectionコレクションです。

https://msdn.microsoft.com/ja-jp/library/cc392389.aspx

いろんなサイトでもMSDNに合わせているのか「Matchesコレクション」と書いてあることが多いようです。

CreateObjectを利用していて気が付いていないのかもしれません。

関連記事

サブコンテンツ

このページの先頭へ