Excelでテキスト文字列からメールアドレスを迅速に抽出する - 完全ガイド
Excelでインポートされたデータや混合テキスト文字列を扱う際、メールアドレスを迅速かつ正確に抽出する必要が出てくることがあります。他のテキストと混ざったメールアドレスのリストを処理する場合や、大量のデータセットからメールを抽出する必要がある場合など、効率的な方法はいくつかあります。このガイドでは、フラッシュフィル、Kutools for Excel、数式、ユーザー定義関数、VBAコードを使用してテキスト文字列からメールアドレスを抽出するさまざまな手法を紹介します。各方法は、ニーズやデータの複雑さに応じて異なる利点を提供します。

フラッシュフィルを使用してテキスト文字列からメールアドレスを抽出する
Excelのフラッシュフィル機能は、あなたが定義したパターンに基づいてデータを自動的にフォーマットしたり抽出したりするための迅速で効率的な方法を提供します。このセクションでは、フラッシュフィルを使用して混合データの列からメールアドレスを抽出する方法を説明します。この方法は、さまざまな種類のテキストを含むリストを扱い、メールアドレスのみを抽出したい場合に特に便利です。
- 隣接する列(例:B2)の最初のセルをクリックし、そこにメールアドレスを表示させます。
- 対応する行のA列にあるメールアドレスを手動で入力し、Enterキーを押します。 例えば、A2に「ana varela@gmail.com」が含まれている場合、「ana varela@gmail.com」をB2に入力します。
- B3セルに留まり、「Ctrl + E」を押してフラッシュフィルをアクティブにします。 Excelは、残りのB列に自動的にメールアドレスを抽出して埋め込みます。
- フラッシュフィルはExcel 2013以降のバージョンで利用可能です。Excel 2010以前を使用している場合、この機能は利用できない可能性があります。
- フラッシュフィルを適用するセルが「テキスト」形式になっていることを確認してください。不要な書式設定の問題を避けるためです。
Kutoolsでワンクリックでテキスト文字列からメールアドレスを一括抽出
データセットからメールアドレスを抽出する際に、Kutools for Excelの「電子メールアドレスを抽出する」機能は、Excelのフラッシュフィルに対する強力な代替手段を提供します。フラッシュフィルはパターン認識の手動アプローチを提供しますが、Kutools for Excelはワンクリックでそのプロセスを自動化し、特に大量のデータを効率的に処理するのに理想的です。このツールは抽出プロセスを簡素化するだけでなく、特に複雑または不規則なデータセットを扱う際に精度とスピードも確保します。
Kutools for Excelをダウンロードしてインストールした後、次の手順を行ってください:
- メールアドレスを抽出したいセル範囲を選択します。次に「Kutools」>「テキスト」>「電子メールアドレスを抽出する」を選択します。
- ポップアップする「電子メールアドレスを抽出する」ダイアログボックスで、出力先のセルを選択し、OKをクリックします。
結果
選択した範囲内の各セルからすべてのメールアドレスが即座に抽出されます。

Kutools for Excel - 必要なツールを300以上搭載し、Excelの機能を大幅に強化します。永久に無料で利用できるAI機能もお楽しみください!今すぐ入手
数式を使用してテキスト文字列からメールアドレスを抽出する
ここでは、Excelでテキストからメールアドレスのみを抽出するための長い数式をご紹介します。以下の手順に従ってください:
1. 隣接するセルB1に次の数式を入力します:
=TRIM(RIGHT(SUBSTITUTE(LEFT(A1,FIND (" ",A1&" ",FIND("@",A1))-1)," ", REPT(" ",LEN(A1))),LEN(A1)))
2. Enterキーを押した後、B1セルを選択し、この数式を含む範囲までオートフィルハンドルをドラッグします。これにより、範囲内のメールアドレスがテキスト文字列から抽出されます。スクリーンショットをご覧ください:
注意:
1. メールアドレスの後の句読点も抽出されます。
2. セルにメールアドレスがない場合、数式はエラー値を表示します。
3. 1つのセルに複数のメールアドレスがある場合、数式は最初のアドレスのみを抽出します。
ユーザー定義関数を使用してテキスト文字列からメールアドレスを抽出する
上記の数式以外にも、ユーザー定義関数を使用してテキスト文字列からメールアドレスを取得することもできます。
1. 「ALT + F11」キーを押し続けると、「Microsoft Visual Basic for Applications」ウィンドウが開きます。
2. 「挿入」>「モジュール」をクリックし、次のマクロをモジュールウィンドウに貼り付けます。
Function ExtractEmailFun(extractStr As String) As String
'Update by extendoffice
Dim CharList As String
On Error Resume Next
CheckStr = "[A-Za-z0-9._-]"
OutStr = ""
Index = 1
Do While True
Index1 = VBA.InStr(Index, extractStr, "@")
getStr = ""
If Index1 > 0 Then
For p = Index1 - 1 To 1 Step -1
If Mid(extractStr, p, 1) Like CheckStr Then
getStr = Mid(extractStr, p, 1) & getStr
Else
Exit For
End If
Next
getStr = getStr & "@"
For p = Index1 + 1 To Len(extractStr)
If Mid(extractStr, p, 1) Like CheckStr Then
getStr = getStr & Mid(extractStr, p, 1)
Else
Exit For
End If
Next
Index = Index1 + 1
If OutStr = "" Then
OutStr = getStr
Else
OutStr = OutStr & Chr(10) & getStr
End If
Else
Exit Do
End If
Loop
ExtractEmailFun = OutStr
End Function
3. コードを保存し、隣接する空白セルに =ExtractEmailFun(A1) の数式を入力します。スクリーンショットをご覧ください:
4. Enterキーを押した後、B1セルを選択し、必要な範囲までオートフィルハンドルをドラッグします。これで、セル内のすべてのメールアドレスが抽出されます。スクリーンショットをご覧ください:
注意:
1. セルにメールアドレスがない場合、空白セルが表示されます。
2. 1つのセルに複数のメールアドレスがある場合、すべてのメールが抽出されます。
VBAコードを使用してテキスト文字列からメールアドレスを抽出する
上記の数式が煩雑に感じる場合は、次のVBAコードを使用してメールアドレスを迅速に抽出できます。
1. 「ALT + F11」キーを押し続けると、「Microsoft Visual Basic for Applications」ウィンドウが開きます。
2. 「挿入」>「モジュール」をクリックし、次のマクロをモジュールウィンドウに貼り付けます。
VBA:テキスト文字列からメールアドレスを抽出する
Sub ExtractEmail()
'Update 20130829
Dim WorkRng As Range
Dim arr As Variant
Dim CharList As String
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
arr = WorkRng.Value
CheckStr = "[A-Za-z0-9._-]"
For i = 1 To UBound(arr, 1)
For j = 1 To UBound(arr, 2)
extractStr = arr(i, j)
outStr = ""
Index = 1
Do While True
Index1 = VBA.InStr(Index, extractStr, "@")
getStr = ""
If Index1 > 0 Then
For p = Index1 - 1 To 1 Step -1
If Mid(extractStr, p, 1) Like CheckStr Then
getStr = Mid(extractStr, p, 1) & getStr
Else
Exit For
End If
Next
getStr = getStr & "@"
For p = Index1 + 1 To Len(extractStr)
If Mid(extractStr, p, 1) Like CheckStr Then
getStr = getStr & Mid(extractStr, p, 1)
Else
Exit For
End If
Next
Index = Index1 + 1
If outStr = "" Then
outStr = getStr
Else
outStr = outStr & Chr(10) & getStr
End If
Else
Exit Do
End If
Loop
arr(i, j) = outStr
Next
Next
WorkRng.Value = arr
End Sub
3. F5キーを押してこのコードを実行すると、ポップアップしたダイアログでVBAを使用したい範囲を選択します。スクリーンショットをご覧ください:
4. OKをクリックすると、選択したテキスト文字列からメールアドレスが抽出されます。スクリーンショットをご覧ください:
![]() | ![]() | ![]() |
注意:
1. セルにメールアドレスがない場合、空白セルが表示されます。
2. 1つのセルに複数のメールアドレスがある場合、すべてのメールが抽出されます。
3. 抽出されたメールは元のデータを上書きするので、事前にデータをバックアップすることをお勧めします。
デモ: Kutools for Excelを使用してテキスト文字列からメールアドレスを抽出する
関連記事:
Excelで複数のメールアドレスからドメインを抽出するにはどうすればよいですか?
最高のオフィス生産性ツール
🤖 | Kutools AI アシスタント: データ分析を革命化する: インテリジェント実行 | コード生成 | カスタム数式の作成 | データを分析しグラフを生成 | 拡張機能を呼び出す… |
人気の機能: 重複を見つけてハイライトまたはマーキング | 空白行を削除 | データを失わずに列またはセルを統合 | 丸める ... | |
スーパーLOOKUP: 複数条件のVLookup | 複数値のVLookup | 複数シートの検索 | ファジーマッチ .... | |
高度なドロップダウンリスト: ドロップダウンリストを迅速に作成 | 依存ドロップダウンリスト | マルチセレクトドロップダウンリスト .... | |
列管理: 特定の数の列を追加 | 列を移動 | 非表示列の可視ステータスを切り替え | 範囲と列を比較 ... | |
注目の機能: グリッドフォーカス | デザインビュー | 強化された数式バー | ワークブック & ワークシート管理 | オートテキスト ライブラリ (Auto Text) | 日付ピッカー | データの統合 | セルの暗号化/復号化 | リストで電子メールを送信 | スーパーフィルター | 特殊フィルタ (太字/斜体/取り消し線をフィルタリング...) ... | |
トップ15のツールセット: 12 のテキストツール (テキストの追加, 特定の文字を削除, ...) | 50以上 のグラフ の種類 (ガントチャート, ...) | 40以上の実用的な 数式 (誕生日に基づいて年齢を計算する, ...) | 19 の挿入ツール (QRコードの挿入, パスから画像を挿入, ...) | 12 の変換ツール (単語に変換する, 通貨変換, ...) | 7 の統合 & セルの分割ツール (高度な行のマージ, セルの分割, ...) | ...さらに多く |
Kutools for ExcelでExcelスキルを強化し、これまでにない効率を体験してください。 Kutools for Excelは、300以上の高度な機能を提供し、生産性を向上させ、保存時間を節約します。 最も必要な機能を入手するにはここをクリック...
Office TabはOfficeにタブインターフェイスをもたらし、作業を非常に簡単にします
- Word、Excel、PowerPoint、Publisher、Access、Visio、Projectでタブ付きの編集と読み取りを有効にします。
- 新しいウィンドウではなく、同じウィンドウの新しいタブで複数のドキュメントを開いて作成します。
- 生産性を50%向上させ、毎日数百回のマウスクリックを減らします!