Excel から各シートを別の電子メール アドレスに送信するにはどうすればよいですか?
複数のワークシートを含むワークブックがあり、各シートのセル A1 に電子メール アドレスがある場合。 ここで、ワークブックの各シートをセル A1 の対応する受信者に添付ファイルとして個別に送信したいと考えています。 このタスクを Excel でどのように解決できますか? この記事では、Excel から各シートを別のメール アドレスに添付して送信するための VBA コードを紹介します。
VBA コードを使用して Excel から各シートを異なる電子メール アドレスに送信する
次の VBA コードは、各シートを添付ファイルとしてさまざまな受信者に送信するのに役立ちます。次のようにしてください。
1。 押す Alt + F11 キーを同時に開いて アプリケーション向け Microsoft Visual Basic 窓。
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 電子メールの送信先の電子メール アドレスを含むセルです。 必要に応じて変更してください。
- CC、BCC、Subject、Body をコードで独自に指定できます。
- 次の新しいメッセージ ウィンドウを開かずに直接メールを送信するには、変更する必要があります。 。表示 〜へ 。送信.
3。 次に、 F5 キーを押してこのコードを実行すると、各シートが添付ファイルとして新しいメッセージ ウィンドウに自動的に挿入されます。スクリーンショットを参照してください。
4.最後に、クリックするだけです 登録 ボタンをクリックして、各メールを XNUMX つずつ送信します。
最高のオフィス生産性ツール
Kutools for Excelはほとんどの問題を解決し、生産性を80%向上させます
- 再利用: すばやく挿入 複雑な数式、チャート および以前に使用したものすべて。 セルを暗号化する パスワード付き。 メーリングリストを作成する そしてメールを送る...
- スーパーフォーミュラバー (複数行のテキストと数式を簡単に編集できます); 読書レイアウト (多数のセルを簡単に読み取って編集する); フィルター範囲に貼り付け...
- セル/行/列をマージする データを失うことなく; 分割セルコンテンツ; 重複する行/列を組み合わせる...重複セルを防止します。 範囲を比較する...
- [複製]または[一意]を選択します 行; 空白行を選択 (すべてのセルは空です); スーパーファインドとファジーファインド 多くのワークブックで; ランダム選択...
- 正確なコピー 数式参照を変更せずに複数のセル。 参照の自動作成 複数のシートに; 箇条書きを挿入、チェックボックスなど...
- テキストを抽出、テキストの追加、位置による削除、 スペースを削除する; ページング小計の作成と印刷。 セルの内容とコメントを変換する...
- スーパーフィルター (フィルタースキームを保存して他のシートに適用します); 高度な並べ替え 月/週/日、頻度など。 特殊フィルター 太字、斜体...
- ワークブックとワークシートを組み合わせる; キー列に基づいてテーブルをマージします。 データを複数のシートに分割; xls、xlsx、PDFをバッチ変換...
- 300 以上の強力な機能. Office / Excel 2007-2021 および 365 をサポートします。すべての言語をサポートします。 企業や組織に簡単に導入できます。 フル機能の 30 日間無料トライアル。 60日間の返金保証。

Officeタブは、タブ付きのインターフェイスをOfficeにもたらし、作業をはるかに簡単にします
- Word、Excel、PowerPointでタブ付きの編集と読み取りを有効にする、パブリッシャー、アクセス、Visioおよびプロジェクト。
- 新しいウィンドウではなく、同じウィンドウの新しいタブで複数のドキュメントを開いて作成します。
- 生産性を 50% 向上させ、毎日何百回もマウス クリックを減らすことができます!
