KutoolsforOffice— 1 つのソリューション、5 つの強力なツール。少ない労力で大きな成果。

Excel で各シートを異なるメールアドレスに送信するには、どうすればよいですか?

著者Xiaoyang変更日

複数のワークシートを含むExcel ワークブックがあり、各シートのセル S1 にそれぞれメールアドレスが記載されている場合、各シートを個別の添付ファイルとして対応する受信者に送信したくなることでしょう。この作業を手動で行うと、特にシート数が多い場合には非常に面倒です。本チュートリアルでは、VBA コードを使って、Excel ファイル内の各ワークシートをセル S1 に指定されたメールアドレス宛てに自動的に添付ファイルとして送信する方法をご紹介します。


VBA コードでExcel から各シートを異なるメールアドレスに送信する

以下の VBA コードを使えば、各ワークシートをセル S1 に記載された対応する宛先へ添付ファイルとして送信できます。次の手順に従ってください。

1Alt + F11キーを同時に押すと、Microsoft Visual Basic for Applicationsウィンドウが開きます。

2.次に、挿入標準モジュールをクリックし、以下の VBA コードをコピーしてウィンドウ内に貼り付けてください。

VBA コード:各シートを異なるメールアドレス宛てに添付ファイルとして送信

Sub Mail_Every_Worksheet()
'Updateby ExtendOffice
  Dim xWs As Worksheet
  Dim xWb As Workbook
  Dim xFileExt As String
  Dim xFileFormatNum As Long
  Dim xTempFilePath As String
  Dim xFileName As String
  Dim xOlApp As Object
  Dim xMailObj As Object
  On Error Resume Next
  With Application
      .ScreenUpdating = False
      .EnableEvents = False
  End With
  xTempFilePath = Environ$("temp") & "\"
  If Val(Application.Version) < 12 Then
    xFileExt = ".xls": xFileFormatNum = -4143
  Else
    xFileExt = ".xlsm": xFileFormatNum = 52
  End If
  Set xOlApp = CreateObject("Outlook.Application")
  For Each xWs In ThisWorkbook.Worksheets
    If xWs.Range("S1").Value Like "?*@?*.?*" Then
      xWs.Copy
      Set xWb = ActiveWorkbook
      xFileName = xWs.Name & " of " _
                   & VBA.Left(ThisWorkbook.Name, VBA.InStr(ThisWorkbook.Name, ".") - 1) & " "
      Set xMailObj = xOlApp.CreateItem(0)
      xWb.Sheets.Item(1).Range("S1").Value = ""
      With xWb
        .SaveAs xTempFilePath & xFileName & xFileExt, FileFormat:=xFileFormatNum
        With xMailObj
        'specify the CC, BCC, Subject, Body below
            .To = xWs.Range("S1").Value
            .CC = ""
            .BCC = ""
            .Subject = "This is the Subject line"
            .Body = "Hi there"
            .Attachments.Add xWb.FullName
            .Display
        End With
        .Close SaveChanges:=False
      End With
      Set xMailObj = Nothing
      Kill xTempFilePath & xFileName & xFileExt
    End If
  Next
  Set xOlApp = Nothing
  With Application
      .ScreenUpdating = True
      .EnableEvents = True
  End With
End Sub
:上記コードにおいて:
  • S1は、送信先メールアドレスが入力されているセルです。お使いのメールアドレスがA1など別のセルにある場合は、コードを修正してその変更を反映できます。
  • コード内で CC、BCC、件名、本文をそれぞれ自由に指定できます。
  • 新しいメッセージウィンドウを開かずに直接メールを送信するには、.Display.Send に変更する必要があります。

Excel の各シートをセル S1 に記載された異なるメールアドレスに送信するための VBA コードウィンドウのスクリーンショット

3.次に、F5キーを押してこのコードを実行すると、各シートが自動的に新しいメッセージウィンドウに添付ファイルとして挿入されます(下記スクリーンショット参照)。

Outlook で作成された新しいメールメッセージのスクリーンショット。それぞれに Excel シートが添付され、異なる受信者に送信されています

4.最後に、送信ボタンをクリックして、メールを1 通ずつ送信しましょう。


Kutools for Excel:ワンクリックで簡単にパーソナライズされたメールを送信!

パーソナライズされたメール送信機能

お客様へのメールを1 通ずつ手作業で送るのは、もうお疲れではありませんか? Kutools for Excel の「メール送信」機能を使えば、コミュニケーションがより迅速でプロフェッショナルになります! あらかじめExcel シートに氏名、メールアドレス、登録コードなどを入力し、プレースホルダーを挿入しておくだけで、システムが自動でパーソナライズされたメールを生成。数百通のメールもワンクリックで一括送信できます。 繰り返しの手作業は、もう不要です!

  • 💡 動的プレースホルダー(例:氏名、登録コード)により、各受信者に合わせてパーソナライズされた内容が自動的に入力され、すべてのメールが特別にカスタマイズされたように感じられます。
  • 📎 正確な配信のためにパーソナライズされたファイルを添付可能
  • 📤 Outlook とシームレスに連携し、安全で信頼性の高い送信を実現
  • 📝 メールテンプレートを保存・再利用して、最大限の効率を実現
  • 🎨 直感的に使える「見たまま」のエディター
  • 🖋 Outlook の署名をそのまま利用——追加設定は一切不要、送信ボタンを押すだけで OK!
  • 今すぐ Kutools for Excel を入手!

最高の Office 業務効率化ツール

🤖KUTOOLS AI アシスタント:次に基づいてデータ分析を革新します:インテリジェント実行     コード生成  カスタム数式作成    データ分析とチャート生成  拡張機能呼び出し
人気の機能検索・ハイライト、または重複をマーキング     空白行を削除する     データを失うことなく列の結合またはセルを     数式を使用しない四捨五入...
スーパー LOOKUP複数条件 VLookup    複数値 VLookup     複数シート間 VLookup      ファジーマッチ....
高度なドロップダウンリストドロップダウンリストをすばやく作成     連動型ドロップダウンリスト     複数選択可能なドロップダウンリスト....
列マネージャー指定した数の列を追加列の移動非表示列の表示状態を切り替え範囲および列の比較...
注目の機能グリッドフォーカス     デザインビュー   強化された数式バー    ワークブックとシートマネージャー     リソースライブラリ(オートテキスト)  日付ピッカー     ワークシートの統合    暗号化/セルの復号化    リストからメール送信     スーパーフィルター      特殊フィルタ(太字のフォントを持つセルをフィルタリング/斜体/取り消し線。。。) 。。。
トップ15 ツールセット12 テキストツールテキストの追加特定の文字を削除、...)   50+チャートタイプガントチャート、...)   40+実用的関数誕生日に基づいて年齢を計算します、...)   19 挿入ツールQR コードを挿入パスから画像を挿入、...)   12 変換ツール単語に変換する為替レートの変換、...)   7 結合と分割ツール高度な行のマージセルの分割、...)さらに多数
Kutools はお好みの言語でご利用いただけます。英語、スペイン語、ドイツ語、フランス語、中国語、および40+の他の言語をサポートしています!

Kutools for Excel でExcel スキルを強化し、これまでにない効率を体験しましょう。Kutools for Excel は、生産性を高め、時間を大幅に節約できる高度な機能を300 以上提供します。最も必要な機能を今すぐ入手するにはこちらをクリック。。。


Office Tab は Office にタブインターフェースをもたらし、作業を大幅に簡単にします

  • Word、Excel、PowerPoint でタブを使った編集と閲覧を有効にします。Publisher、Access、Visio、Project でもご利用いただけます。
  • 複数のドキュメントを、新しいウィンドウではなく、同じウィンドウ内の新しいタブで開いたり作成したりできます。
  • 日々の生産性を50%も向上させ、毎日数百回ものマウスクリックを削減します!

すべてのKutools アドインが、たった1 つのインストーラーで完結。

Kutools for Officeスイートには、Excel ・Word ・Outlook ・PowerPoint 用のアドインと Office Tab Pro が含まれており、複数の Office アプリを横断して作業するチームに最適です。

ExcelWordOutlookTabsPowerPoint
  • オールインワンスイート— Excel、Word、Outlook、PowerPoint 用アドイン+Office Tab Pro
  • インストーラー1 つ、ライセンス1 つ— 数分でセットアップ可能(MSI 対応)
  • 連携してさらにパワーアップ— Office アプリ全体で生産性が向上
  • 30 日間のフル機能トライアル— 登録不要、クレジットカード不要
  • 最高のお得感— 個別アドイン購入よりお得