EXCEL内のセルから特定の文字列を抽出したい事ってありませんか?
今回は、EXCELの特定のセル(A1)からメールアドレスを抽出する方法を紹介させていただきます。
今回もVBAで正規表現を利用します。サンプルコードは以下の通りです。
まず、こちらをVisual Basicに登録してください。
'参照設定ダイアログで「Microsoft VBScriot Regular Expresstions 5.5」を選択
'
' 指定した文字列で合致した文字列があるか否かを判断する
' 使い方
' RegGetData(文字列,正規表現パターン)
' TRUE: 正規表現でヒットする文字がある
' FALSE: ヒットする文字がない
'
Function RegGetData(ByVal strData As String, ByVal strPattern As String) As String
Dim RE
Dim rg As Range
Set RE = CreateObject("VBScript.RegExp")
RegGetData = ""
With RE
.Pattern = strPattern
.IgnoreCase = True
.Global = True
Set reMatch = .Execute(strData)
If reMatch.Count > 0 Then
RegGetData = reMatch(0).Value
End If
End With
Set RE = Nothing
End Function
A1セルには、以下の様なテキスト文が入っているとします。
B2セルに、以下の様な数式を設定します
=RegGetData(A1,”[\w-.]+@[\w-.]+.[A-Za-z]+”)
すると結果は、
となります。なんと、メールアドレスの抜き出しができました。
正規表現まとめ + メールアドレスとURLの正規表現例 からメールアドレスのための正規表現の記述パターンを参照させていただきました。ありがとうございました。
(本記事にたいする質問やお問合せ・IT改善のご相談はこちら)
関連記事
(プチ効率化)EXCELで複数の検索文字列があるか否かを判定するマクロ関数
(プチ改善)メールアドレスの間違い検出