読者です 読者をやめる 読者になる 読者になる

エクセルでCELLから正規表現でデータを抽出するファンクション

正規表現便利ですよね。
検索などでは正規表現拡張をしているものが多くありますがファンクションで使えるものが無かったので作ってみた。

使い方は簡単でファンクションを読み込ませたBookで
セルに「=matchRegExp(A3,"^a+b.do")」みたいに書くだけ
こんな感じにセルから正規表現でデータを抽出出来る。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

これでかゆいところに手が届く。

'------------------------------------------------
'正規表現抽出
'IN: cell: 検査対象セル(範囲を指定した場合#VALUE!を返却)
'IN: strPattern: 正規表現パターン
'IN: ignoreCase: 大文字小文字指定(省略化。デフォルトFALSE)
'OUT: マッチした文字列(マッチしない場合#VALUE!を返却)
'------------------------------------------------
Public Function matchRegExp(cell As Range, strPattern As String, Optional ignoreCase As Boolean)
   Dim RE
   Dim reMacth

   Set RE = CreateObject("VBScript.RegExp")
   With RE
       .Pattern = strPattern
       .ignoreCase = ignoreCase
       .Global = True
           Set reMatch = .Execute(cell.value)
   End With
   ret = reMatch(0).value
   Set reMatch = Nothing
   Set RE = Nothing
   matchRegExp = ret
End Function