メインコンテンツへスキップ

Excelでテキスト文字列からメールアドレスを迅速に抽出する - 完全ガイド

Author: Xiaoyang Last Modified: 2025-05-23

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

A screenshot of mixed text strings in Excel for extracting email addresses

フラッシュフィルを使用してテキスト文字列からメールアドレスを抽出する

Excelのフラッシュフィル機能は、あなたが定義したパターンに基づいてデータを自動的にフォーマットしたり抽出したりするための迅速で効率的な方法を提供します。このセクションでは、フラッシュフィルを使用して混合データの列からメールアドレスを抽出する方法を説明します。この方法は、さまざまな種類のテキストを含むリストを扱い、メールアドレスのみを抽出したい場合に特に便利です。

  1. 隣接する列(例:B2)の最初のセルをクリックし、そこにメールアドレスを表示させます。
  2. 対応する行のA列にあるメールアドレスを手動で入力し、Enterキーを押します。
    例えば、A2に「ana varela@gmail.com」が含まれている場合、「ana varela@gmail.com」をB2に入力します。
    A screenshot showing the manual entry of an email address in Excel before using Flash Fill
  3. B3セルに留まり、「Ctrl + E」を押してフラッシュフィルをアクティブにします。
    Excelは、残りのB列に自動的にメールアドレスを抽出して埋め込みます。
    A GIF of email addresses extracted using Flash Fill in Excel
注意:
  • フラッシュフィルはExcel 2013以降のバージョンで利用可能です。Excel 2010以前を使用している場合、この機能は利用できない可能性があります。
  • フラッシュフィルを適用するセルが「テキスト」形式になっていることを確認してください。不要な書式設定の問題を避けるためです。

Kutoolsでワンクリックでテキスト文字列からメールアドレスを一括抽出

データセットからメールアドレスを抽出する際に、Kutools for Excelの「電子メールアドレスを抽出する」機能は、Excelのフラッシュフィルに対する強力な代替手段を提供します。フラッシュフィルはパターン認識の手動アプローチを提供しますが、Kutools for Excelはワンクリックでそのプロセスを自動化し、特に大量のデータを効率的に処理するのに理想的です。このツールは抽出プロセスを簡素化するだけでなく、特に複雑または不規則なデータセットを扱う際に精度とスピードも確保します。

Kutools for Excelは、300以上の高度な機能を提供し、複雑なタスクを簡素化し、創造性と効率を向上させます。 AI機能と統合され、Kutoolsは正確にタスクを自動化し、データ管理を容易にします。Kutools for Excelの詳細情報...無料トライアル...

Kutools for Excelをダウンロードしてインストールした後、次の手順を行ってください:

  1. メールアドレスを抽出したいセル範囲を選択します。次に「Kutools」>「テキスト」>「電子メールアドレスを抽出する」を選択します。
  2. ポップアップする「電子メールアドレスを抽出する」ダイアログボックスで、出力先のセルを選択し、OKをクリックします。
    A screenshot of the Kutools Extract Email Address feature in action
結果

選択した範囲内の各セルからすべてのメールアドレスが即座に抽出されます。

A screenshot showing the results of email extraction using Kutools

Kutools for Excel - 必要なツールを300以上搭載し、Excelの機能を大幅に強化します。永久に無料で利用できるAI機能もお楽しみください!今すぐ入手


数式を使用してテキスト文字列からメールアドレスを抽出する

ここでは、Excelでテキストからメールアドレスのみを抽出するための長い数式をご紹介します。以下の手順に従ってください:

1. 隣接するセルB1に次の数式を入力します:

=TRIM(RIGHT(SUBSTITUTE(LEFT(A1,FIND (" ",A1&" ",FIND("@",A1))-1)," ", REPT(" ",LEN(A1))),LEN(A1)))

A screenshot showing a formula for extracting email addresses in Excel

2. Enterキーを押した後、B1セルを選択し、この数式を含む範囲までオートフィルハンドルをドラッグします。これにより、範囲内のメールアドレスがテキスト文字列から抽出されます。スクリーンショットをご覧ください:

A screenshot of email addresses extracted using a formula in Excel

注意:

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) の数式を入力します。スクリーンショットをご覧ください:

A screenshot showing a user-defined function for extracting email addresses in Excel

4. Enterキーを押した後、B1セルを選択し、必要な範囲までオートフィルハンドルをドラッグします。これで、セル内のすべてのメールアドレスが抽出されます。スクリーンショットをご覧ください:

A screenshot of email addresses extracted using a user-defined function in Excel

注意:

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を使用したい範囲を選択します。スクリーンショットをご覧ください:

A screenshot showing the range selection for VBA email extraction in Excel

4. OKをクリックすると、選択したテキスト文字列からメールアドレスが抽出されます。スクリーンショットをご覧ください:

A screenshot showing the original text before using VBA for email extraction Arrow A screenshot of the results after extracting emails with VBA code in Excel

注意:

1. セルにメールアドレスがない場合、空白セルが表示されます。

2. 1つのセルに複数のメールアドレスがある場合、すべてのメールが抽出されます。

3. 抽出されたメールは元のデータを上書きするので、事前にデータをバックアップすることをお勧めします。


arrow blue right bubble デモ: Kutools for Excelを使用してテキスト文字列からメールアドレスを抽出する

 
Kutools for Excel: あなたの指先に 300 以上の便利なツールが集結!永久無料のAI機能をお楽しみください!今すぐダウンロード!

関連記事:

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%向上させ、毎日数百回のマウスクリックを減らします!