別のセルの内容の正規表現検索を行うためにセルに配置できるExcel関数を探しています。これを行うために利用可能なものはありますか?ソリューションをより速くハードコーディングできるため、このためにスプレッドシートにVBスクリプトを追加する必要はありません。最速の解決策は関数であることだけです。しかし、見つけることができません。だから多分何もない。
知ってる?
別のセルの内容の正規表現検索を行うためにセルに配置できるExcel関数を探しています。これを行うために利用可能なものはありますか?ソリューションをより速くハードコーディングできるため、このためにスプレッドシートにVBスクリプトを追加する必要はありません。最速の解決策は関数であることだけです。しかし、見つけることができません。だから多分何もない。
知ってる?
回答:
VBEで「Microsoft VBScript Regular Expressions 5.5」への参照を追加するだけで、VBScript.dll正規表現関数をExcelに公開できます。単純な正規表現関数を書くのは簡単です、例えば
Public Function emailCheck(rawEmail As String) As Boolean
Dim reg As New RegExp
reg.Pattern = "^[\w-\.]{1,}\@([\da-zA-Z-]{1,}\.){1,}[\da-zA-Z-]{2,4}$"
emailCheck = False
If reg.Test(rawEmail) Then
emailCheck = True
End If
End Function
MoreFunc.xllは、正規表現機能を備えた無料のアドインです。
Regexを実行できる他のサードパーティアドインもいくつかあります。
それを行うための真のネイティブワークシート関数はありませんが、実行する特定の検索がある場合は、おそらく他の関数を使用してジョブを実行できます。
特定のセル内で一致する正規表現の数を与える関数は次のとおりです。
Public Function regexCount(regex As String, ref As Range) As Integer
Dim reg As New RegExp
reg.Global = True
reg.Pattern = regex
regexCount = reg.Execute(ref.Value).Count
End Function
(「Microsoft VBScript Regular Expressions 5.5」への参照を追加する必要があります-VBAエディターから「ツール」->「参照」に移動し、その参照のチェックボックスをオンにします。)