プロフィール
VBA

Excel VBA メール送信ツール(Outlook)

VBAでOutlookのメール送信について紹介します。

自動でOutlookのメール送信するツールを作ってみました。

Excel VBA メール送信ツール(フリーメール)VBAでメール送信について紹介します。 自動でメール送信するツールを作ってみました。 今回はOutlookではなくフリーメー...

実際に作ったExcelマクロファイルはこちらに載せています。

https://yahoo.jp/box/oOQwvA

参照設定

ファイル用もフォルダ用もダイアログを開くに参照設定を必要です。

手順はコードエディターから「ツール(T)」→「参照設定(R)」と移動します。

その後、Microsoft Outlook 16.0 Object Libraryにチェックを付けておいてください。

16.0はバージョンに寄ります。

VBA C# オススメ参考書プログラミングの参考書でオススメの紹介をしていきます。 それぞれ私が使っている言語のみです。 VBAのオススメ参考書をExc...

メール送信処理のコード

処理の流れは以下の順です。

①メール情報(件名、宛先など)を取得
②メールに情報をセットする
③添付ファイルを貼り付ける
④メールを送信する
⑤次のエクセルシートの情報を読取って①から~④を繰り返す

コード

解説

メール情報を取得

重要なポイントは名前の定義をしていることです。

宛先Toであれば「Mail_TO」のようにすべてのシートに設定がしてあります。

各シートに全て同じ名前を付けることで同じ処理をシートごとに繰り返せるようにしています。

そして各シートの値は変数に格納していく処理になっています。

※シートをコピーして増やしても名前の定義は引き継がれるため処理に問題はありません。

メールに情報をセットする

Outlookのオブジェクトを生成していま。

その後、それぞれToや本文の情報をOutlookのオブジェクトにセットしていっています。

添付ファイルを貼り付ける

まず添付ファイルのオブジェクト生成しています。

FileSearchメソッドを使って、添付ファイルのパスを取得しメールのオブジェクトに張り付ける処理を行っています。

FileSearchは後で説明を記載しています。

その後、添付ファイルがない場合、メールは送らず次のシートを処理するようになっています。

※発注連絡という想定なので、発注書の添付ファイルがなければ連絡はする必要がないから送らないという考え方です。

メールを送信する・Outlookを閉じる

最後にメールを送信します。

その後、作成したオブジェクトは破棄して次のメール作成・送信処理へ行きます。

FileSearchメソッド

送信対象のファイル([yyyymmdd_シート名.拡張子]フォーマット)のファイル名を検索し配列に格納する処理です。

検索する場所は「..\VBA Outlookメール送信\添付ファイル」以下のみです。

他の場所に配置したファイルは添付ファイルとして検索されません。

コード

解説

引数として受け取った検索フォルダ(SearchPath)を検索条件(SearchText)を元に検索します。

見つかったファイルのパスを配列に格納していきます。

検索条件に一致するファイルが見つからなくなったら配列を呼び出し元に返しています。

送信結果

送信結果はこんなメールです。

メール送信と言いつつガチガチに業務を想定したツールになってしまっています…

使えそうなところをアレンジしていってみてください。

 

<参考URL>
・【エクセルVBA】Outlookでメールを作成・送信する方法
https://tonari-it.com/excel-vba-outlook-mail-send/
・VBAでメールを自動送信!エクセルマクロでoutlook操作する方法
http://www.fastclassinfo.com/entry/vba_outlook_sendmail
・シートを指定してRangeを取得する
https://www.relief.jp/docs/excel-vba-get-range-specific-sheet.html
・PDF発注書テンプレート
https://pdf.wondershare.jp/templates/purchase-order-template.html
・FileSystemObjectオブジェクト – FileExistsメソッド
http://officetanaka.net/excel/vba/filesystemobject/filesystemobject10.htm
・ファイルの一覧を取得する
http://officetanaka.net/excel/vba/file/file07.htm

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です