Excelから異なるメールアドレスに各シートを送信するにはどうすればよいですか?
複数のワークシートを持つExcelワークブックがあり、それぞれのセルS1にメールアドレスが含まれている場合、各シートを個別の添付ファイルとしてそれぞれの受信者に送信したいかもしれません。この作業は、特に多数のシートを扱う場合、手動で行うと面倒です。このチュートリアルでは、VBAコードを使用して、Excelファイルの各ワークシートを、そのシートのセルS1に指定されたメールアドレスに自動的に送信する方法を紹介します。
VBAコードを使用してExcelから異なるメールアドレスに各シートを送信する
次のVBAコードを使用すると、各ワークシートを、セルS1に記載されている対応する受信者に添付ファイルとして送信できます。以下の手順に従ってください:
1. Alt + 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に変更する必要があります。
3. そして、 F5キーを押してこのコードを実行すると、各シートが新しいメッセージウィンドウに自動的に添付ファイルとして挿入されます。スクリーンショットをご覧ください:
4. 最後に、送信ボタンをクリックして、各メールを一つずつ送信します。
Kutools for Excel: たった1クリックで簡単にパーソナライズされたメールを送信!

顧客にメールを1通ずつ送るのはもう疲れていませんか? Kutools for Excelの「電子メールを送信」機能を使えば、コミュニケーションがより迅速かつプロフェッショナルになります!名前、メールアドレス、登録コードなどを記載したExcelシートを準備し、プレースホルダーを挿入するだけで、システムが自動的にパーソナライズされたメールを生成し、数百通のメールを1クリックで送信します。繰り返しの作業はもう不要です!
- 💡 動的なプレースホルダー(例:名前、登録コード)が各受信者に合わせて自動的に入力され、すべてのメールが独自にカスタマイズされているように感じられます。
- 📎 個別にカスタマイズされたファイルを添付して正確に配信
- 📤 Outlookとシームレスに統合され、安全で信頼性のある送信が可能
- 📝 メールテンプレートを保存して再利用し、最大限の効率を得る
- 🎨 直感的で使いやすいWYSIWYGエディター
- 🖋 Outlookの署名を使用—追加設定は不要、そのまま送信!
- 今すぐKutools For Excelを入手しよう!
最高のオフィス生産性ツール
🤖 | Kutools AI Aide:データ分析を革新:インテリジェント実行 | コード生成 | カスタム数式の作成 | データを分析してグラフを生成 | Kutools Functions を呼び出す… |
人気機能:重複の検索・ハイライト・マーキング | 空白行を削除 | データを失わず列やセルを統合 | 丸める ... | |
スーパー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でタブ編集とタブ閲覧を有効にします
- 同じウィンドウ内の新しいタブで複数のドキュメントを開いたり作成したりできます。新しいウィンドウを開く必要はありません。
- 生産性が50%向上し、1日に何百回ものマウスクリックも削減できます!