SendOutlookMail|OutlookメールをVBAから安全に自動送信 | Excel VBA
- yuji fukami
- 2024年12月28日
- 読了時間: 2分
更新日:2026年1月1日

<概要 (Outlook)>
SendOutlookMail は、Excel VBA から Outlook を操作してメールを作成・送信するための汎用プロシージャです。
宛先・件名・本文を配列で管理できるため、定型文メールや業務通知メールの自動化に非常に向いています。
本プロシージャは Outlook を遅延バインディングで操作しているため、
開発環境ごとに参照設定を行う必要がなく、配布用マクロとしても安全に利用できます。
また、本文は一次元配列を改行結合して生成する設計になっており、
1行ずつ意味を持った文章構成をそのままコード上で表現できます。
Excel VBA Outlook送信 をシンプルかつ再利用可能な形で実装したい場合に最適な汎用プロシージャです。
<実行例>
簡単な実行例のコードを下記に示します。
これを実行すると、Outlookのメール送信の画面が出てきて後は人が確認して送信ボタンを押せばメールが送信されます。
この実行例の場合は、第7引数のAutoSendingがデフォルトでFalseしているのでメール送信の前に送信画面が現れるようにしております。このAutoSendingがTrue入った場合は送信画面ができずに自動的に送信されるようになり、これは複数の別々の宛先のアドレスを自動的に一括で送信する場合などは、そのような設定が必要になります。

実際に業務で使えるような実装を行うとしたら、下記の画像の様にエクセルのシート上に入力フォームを用意して、セルにセルの入力といろいろ連動するような形になります。

<関連記事>
今回紹介しているような汎用プロシージャを部品として一元管理する方法は別記事で紹介していますので、是非このノウハウも参考にしてみてください。
コーディングを効率化する上でどんどん増やしていった汎用プロシージャ(部品)をいくら増やしても簡単に流用ができるような仕組みの構築が可能になります。

