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 Aide:データ分析を革新します。主な機能:Intelligent Execution|コード生成|カスタム数式の作成|データの分析とグラフの生成|Kutools Functionsの呼び出し…… |
人気の機能:重複の検索・ハイライト・重複をマーキング|空白行を削除|データを失わずに列またはセルを統合|丸める…… | |
スーパーLOOKUP:複数条件でのVLookup|複数値でのVLookup|複数シートの検索|ファジーマッチ…… | |
高度なドロップダウンリスト:ドロップダウンリストを素早く作成|連動ドロップダウンリスト|複数選択ドロップダウンリスト…… | |
列マネージャー:指定した数の列を追加 |列の移動 |非表示列の表示/非表示の切替| 範囲&列の比較…… | |
注目の機能:グリッドフォーカス|デザインビュー|強化された数式バー|ワークブック&ワークシートの管理|オートテキスト ライブラリ|日付ピッカー|データの統合 |セルの暗号化/復号化|リストで電子メールを送信|スーパーフィルター|特殊フィルタ(太字/斜体/取り消し線などをフィルター)…… | |
トップ15ツールセット:12 種類のテキストツール(テキストの追加、特定の文字を削除など)|50種類以上のグラフ(ガントチャートなど)|40種類以上の便利な数式(誕生日に基づいて年齢を計算するなど)|19 種類の挿入ツール(QRコードの挿入、パスから画像の挿入など)|12 種類の変換ツール(単語に変換する、通貨変換など)|7種の統合&分割ツール(高度な行のマージ、セルの分割など)|… その他多数 |
Kutools for ExcelでExcelスキルを強化し、これまでにない効率を体感しましょう。 Kutools for Excelは300以上の高度な機能で生産性向上と保存時間を実現します。最も必要な機能はこちらをクリック...
Office TabでOfficeにタブインターフェースを追加し、作業をもっと簡単に
- Word、Excel、PowerPointでタブによる編集・閲覧を実現。
- 新しいウィンドウを開かず、同じウィンドウの新しいタブで複数のドキュメントを開いたり作成できます。
- 生産性が50%向上し、毎日のマウスクリック数を何百回も削減!
全てのKutoolsアドインを一つのインストーラーで
Kutools for Officeスイートは、Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proをまとめて提供。Officeアプリを横断して働くチームに最適です。





- オールインワンスイート — Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proが含まれます
- 1つのインストーラー・1つのライセンス —— 数分でセットアップ完了(MSI対応)
- 一括管理でより効率的 —— Officeアプリ間で快適な生産性を発揮
- 30日間フル機能お試し —— 登録やクレジットカード不要
- コストパフォーマンス最適 —— 個別購入よりお得