Skip to content

Excel 関数レシピ#

セル内の文字列検索#

正規表現カスタム関数#

Excelには正規表現を直接サポートする関数はありませんが、VBA(Visual Basic for Applications)を使用して自分でカスタム関数を作成し、正規表現を使用することができます。 以下は、正規表現を使用するカスタム関数の例です。

  1. Excelを開いて、「開発」タブを表示します。タブが表示されていない場合は、Excelオプションから「メイン タブに開発ツールを表示する」オプションを有効にしてください。
  2. 「開発」タブから「Visual Basic」をクリックしてVBAエディタを開きます。
  3. VBAエディタで、新しいモジュールを挿入します。これを行うには、「挿入」メニューから「モジュール」を選択します。
  4. 新しいモジュール内に、以下のVBAコードを貼り付けます
Function RegExMatch(inputString As String, pattern As String) As String
    Dim regex As Object
    Dim matches As Object
    Dim match As Object
    Dim result As String

    Set regex = CreateObject("VBScript.RegExp")
    With regex
        .Global = True
        .MultiLine = False
        .IgnoreCase = True ' 大文字と小文字を区別しない場合はFalseに変更
        .pattern = pattern
    End With

    Set matches = regex.Execute(inputString)

    If matches.Count > 0 Then
        Set match = matches(0)
        result = match.Value
    Else
        result = "None"
    End If

    RegExMatch = result
End Function

カスタム関数を保存し、VBAエディタを閉じます。 これで、作成したカスタム関数をExcelのセルで使用することができます。たとえば、A1セルにテキストがある場合、以下のようにカスタム関数を使用して正規表現を実行できます:

=RegExMatch(A1, "[0-9]+")

この例では、A1セルのテキストから最初に見つかる数字の連続した部分を抽出します。正規表現パターンを必要に応じて調整してください。