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

Excelで指定したセル範囲からメールを送信するにはどうすればよいですか?

Author: Siluvia Last Modified: 2025-08-06

多くの場合、Excelワークシート内の指定された範囲の内容は、メールでのやり取りに役立つことがあります。この記事では、Excel内で直接指定した範囲をメール本文に挿入して送信する方法をご紹介します。

Excelで指定したセル範囲からメールを送信する
驚きのツールを使って指定したセル範囲からメールを送信する

Excelでのメール送信に関するその他のチュートリアル...


Excelで指定したセル範囲からメールを送信する

次のVBAコードを使用すると、範囲をコピーし、それをOutlookのメール本文に直接貼り付けることができます。以下の手順に従ってください。

1. コピーしたい範囲が含まれているワークシートで、「Alt + F11」キーを同時に押して「Microsoft Visual Basic for Applications」ウィンドウを開きます。

2. 開いた「Microsoft Visual Basic for Applications」ウィンドウで、「ツール」>「参照設定」をクリックしてください(下のスクリーンショットを参照)。

3. 「参照設定 – VBAProject」ダイアログボックスで、「Microsoft Outlook Object Library」オプションを探してチェックを入れ、OKボタンをクリックします。

A screenshot showing the References – VBAProject dialog box

4. 「挿入」>「モジュール」をクリックし、以下のVBAコードをモジュールウィンドウにコピー&ペーストします。

VBAコード:Excelで指定した範囲を含むメールを送信する

Sub Send_Email()
'Updated by Extendoffice 20200119
    Dim xRg As Range
    Dim I, J As Long
    Dim xAddress As String
    Dim xEmailBody As String
    Dim xMailOut As Outlook.MailItem
    Dim xOutApp As Outlook.Application    
    On Error Resume Next
    xAddress = ActiveWindow.RangeSelection.Address
    Set xRg = Application.InputBox("Please select range you need to paste into email body", "KuTools For Excel", xAddress, , , , , 8)
If xRg Is Nothing Then Exit Sub
Application.ScreenUpdating = False
    Set xOutApp = CreateObject("Outlook.Application")
    Set xMailOut = xOutApp.CreateItem(olMailItem)
    For I = 1 To xRg.Rows.Count
        For J = 1 To xRg.Columns.Count
            xEmailBody = xEmailBody & "  " & xRg.Cells(I, J).value
        Next
        xEmailBody = xEmailBody & vbNewLine
    Next
    xEmailBody = "Hi" & vbLf & vbLf & " body of message you want to add" & vbLf & vbLf & xEmailBody & vbNewLine
    With xMailOut
        .Subject = "Test"
        .To = "happy.xuebi@163.com"
        .Body = xEmailBody
        .Display
        '.Send
    End With
    Set xMailOut = Nothing
    Set xOutApp = Nothing
    Application.ScreenUpdating = True
End Sub

注意:

  • 1). このスクリプト行 xEmailBody = "Hi" & vbLf & vbLf & "追加したいメッセージ本文" & vbLf & vbLf & xEmailBody & vbNewLine を必要に応じて変更してください。
  • 2). コード内のこの行でメール受信者と件名を指定してください:(.To = happy.xuebi@163.com および .Subject = "test")

5. F5キーを押してコードを実行します。表示されるKutools for Excelダイアログボックスで、メール本文に貼り付けたい範囲を選択し、OKボタンをクリックします。スクリーンショットをご覧ください:

A screenshot of the dialog box for selecting the range to paste into the email body

6. これで、指定された受信者、件名、本文、選択したExcel範囲を含むメールが作成されます。「送信」ボタンをクリックしてこのメールを送信してください。スクリーンショットをご覧ください。

A screenshot showing a created email with Excel range pasted in the email body

注意:このVBAコードは、Outlookをメールプログラムとして使用している場合にのみ動作します。


驚きのツールを使って指定したセル範囲からメールを送信する

Outlookを使用せず、Excel内で直接指定した範囲のデータを貼り付けてメールを送信したい場合は、Kutools for Excelの「メール送信」機能をお勧めします。この機能を使えば、一度メールアドレスの送信サーバーを設定すれば、今後そのメールアドレス経由でExcelから直接メールを送信できます。

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

1. まず、必要なフィールドを持つメーリングリストを準備する必要があります。

  • ヒント:メーリングリストには少なくとも2行必要で、最初の行はヘッダーにする必要があります(例えば、Excelで2つのメールアドレスにメールを送信したい場合、以下のように「メール」というヘッダーとともにこれらのメールアドレスを入力してください)。
  • A screenshot showing an Excel mailing list prepared for sending emails with Kutools
  • または、「メーリングリストの作成」機能を使用して簡単にメーリングリストを作成することもできます。

2. メール本文に追加する範囲を選択し、Ctrl + Cキーを押してコピーします。

3. メーリングリスト全体(ヘッダーを含む)を選択し、「Kutools Plus」>「メール送信」をクリックします。スクリーンショットをご覧ください:

A screenshot of the Send Emails button under the Kutools Plus menu in Excel

4. すると、「メール送信」ダイアログボックスが表示されます。

  • 4.1) 選択されたメーリングリストの項目が対応するフィールドに自動的に入力されます(必要に応じてさらにフィールドを追加できます)。
  • 4.2) メール本文ボックスをクリックし、Ctrl + Vキーを押して選択した範囲のデータを貼り付けます。その後、必要に応じて他のコンテンツを追加します。
  • 4.3) 「Outlookを使用してメールを送信」のチェックを外します。
  • 4.4) 「SMTP設定」ボタンをクリックします。スクリーンショットをご覧ください:

    A screenshot of the Send Emails dialog box

5. 次に、「SMTP設定 – 新しいスキーム」ダイアログボックスが表示されます。メールアドレスとそのサーバー設定を入力し、「送信済みメールを保存する場所」のチェックボックスをオンにして保存先フォルダを指定し、OKボタンをクリックして設定を保存します。

A screenshot of Outgoing Server (SMTP) Settings dialog

6. 「メール送信」ダイアログボックスに戻ったら、「送信」ボタンをクリックしてメールを送信します。

Kutools for Excel - Excel向けの300以上の必須ツールを搭載。永久に無料のAI機能をお楽しみください!今すぐダウンロード!


関連記事:

Excelで指定されたセル内のメールアドレスにメールを送信する
メールアドレスのリストがあり、それらのメールアドレスに一括で直接Excelからメールを送信したいとします。どのように実現すればよいでしょうか?この記事では、Excelのセル内に指定された複数のメールアドレスにメールを送信する方法をご紹介します。

Excelでメールを送信する際にOutlookの署名を挿入する
Excelから直接メールを送信したい場合、そのメールにデフォルトのOutlook署名を追加するにはどうすればよいでしょうか?この記事では、Excelでメールを送信する際にOutlook署名を追加するための2つの方法をご紹介します。

Excelで複数の添付ファイル付きメールを送信する
この記事では、Excelで複数の添付ファイルを付けてOutlook経由でメールを送信する方法について説明しています。

Excelで期日が過ぎた場合にメールを送信する
例えば、列Cの期日が7日以内(現在の日付が2017/9/13の場合)、列Aの指定された受信者に列Bの指定された内容でリマインダーメールを送信します。これを実現するにはどうすればよいでしょうか?この記事では、この問題に対処するためのVBA方法を詳しく紹介します。

Excelでセル値に基づいて自動的にメールを送信する
例えば、あるワークシートのセルD7の値が200より大きい場合、Outlook経由で特定の受信者にメールを自動的に作成したいとします。この記事では、この問題を迅速に解決するためのVBA方法を紹介します。

Excelでのメール送信に関するその他のチュートリアル...

最高のオフィス生産性ツール

🤖 Kutools AI Aide:データ分析を革新:インテリジェント実行   |  コード生成  |  カスタム数式の作成  |  データを分析してグラフを生成  |  Kutools Functions を呼び出す
人気機能重複の検索・ハイライト・マーキング   |  空白行を削除   |  データを失わず列やセルを統合   |   丸める ...
スーパーLOOKUP複数条件VLOOKUP   複数値VLOOKUP  |  複数シートの検索  |  ファジーマッチ ....
高度なドロップダウンリストすばやくドロップダウンリストを作成   |  依存型ドロップダウンリスト   |  複数選択ドロップダウンリスト ....
列の管理:特定数の列を追加  | 列を移動  | 非表示列の表示状態を切り替え |  範囲と列の比較 ...
注目機能グリッドフォーカス   |  デザインビュー  |  強化された数式バー   ワークブック&ワークシートの管理   |  オートテキスト ライブラリ (Auto Text)   |  日付ピッカー   |  データの統合   |  セルの暗号化/復号化    リスト送信で電子メールを送信   |  スーパーフィルター   |   特殊フィルタ(太字/斜体/取り消し線でフィルタ...)
トップ15ツールセット12 種類のテキストツールテキストの追加特定の文字を削除など)  |  50 種以上のグラフ タイプガントチャートなど)  |  40を超える実用的な 数式誕生日に基づいて年齢を計算する、など)  |  19種の 挿入ツールQRコードの挿入パスから画像の挿入など)  |  12種類の 変換ツール単語に変換する通貨変換など)  |  7つの 結合&分割ツール高度な行のマージセルの分割など)  |  ...さらに多数
お好きな言語でKutoolsを使用できます ― 英語、スペイン語、ドイツ語、フランス語、中国語など40以上に対応!

Kutools for ExcelでExcelスキルを強化し、かつてない効率を体験しましょう。 Kutools for Excelは300以上の高度な機能で生産性向上と時間短縮を実現します。最も必要な機能を今すぐ取得...


Office TabはOfficeにタブ表示を追加し、作業効率を大幅に向上させます

  • Word、Excel、PowerPointでタブ編集とタブ閲覧を有効にします
  • 同じウィンドウ内の新しいタブで複数のドキュメントを開いたり作成したりできます。新しいウィンドウを開く必要はありません。
  • 生産性が50%向上し、1日に何百回ものマウスクリックも削減できます!