VBA

【VBAでOutlook操作】Excelシートのデータから下書きメールを一括作成する

ねぇもりさん、会社で毎日たくさんメールを出す作業があるんだ。ラクにできる方法ないかなぁ
もり
もり
一斉送信はできないの??
宛先ごとにメールの文面を変える必要があるから、一人ずつに送信しなきゃいけないんだ
もり
もり
なるほどね~それならVBAでツールを作っちゃおう

メール本文がまったく同じ内容であればToやBccなどで一斉送信できますが、相手によってメールの文面を変えたい場合は、一通ずつメールを作成して個人宛に送信する必要がありますよね。

エクセルシートに用意したデータを元に、Outlookの下書きメールを一括作成するマクロを紹介します

 

outlook1-1

下書きメールを一括作成するツール

※この記事はVBAの基本操作を習得している方向けに書いているので、全般的な解説は省略しています。

エクセルシートにデータを用意

下記のようなフォーマットを用意します。

ご自身の業務要件に応じてフォーマットは調整してください。

outlook1-2
  • A~E列:宛先と宛先ごとの情報
  • J列:固定情報

J列の「本文」は「ひな形」です。
宛先毎に変更したい箇所を()全角かっこでくくっています。

outlook1-3

ひな形のこの部分をマクロで置き換えます。

  • (氏名):C列の値に置換
  • (使用日):D列の値に置換
  • (金額):E列の値に置換

ソースコード

ライブラリ「Microsoft Outlook XX.0 Object Library」を使用しています。「ツール」→「参照設定」で「Microsoft Outlook XX.X Object Library」にチェックを入れる。

マクロの使い方

①参照設定
VBE[ツール] メニューで [参照設定] をクリック。
Microsoft Outlook XX.0 Object Libraryにチェックをいれます。
(XXはOfficeのバージョンによって異なる)
outlook1-4

②上記のソースコードを標準モジュールに貼り付ける
※セル番地はご自身で作成したExcelフォーマットに合わせて変更してください。

③Outlookを起動する
outlook1-5
④マクロ実行
エクセルシート2行目~最終行のデータを元にした「下書きメール」が一括で作成されました!outlook1-6

⑤「送信」する
※これは人間の作業です。
マクロで作成されたメールを確認し、問題なければ送信ボタンを押します。

送信処理もマクロで行いたい場合

「面倒くさいから送信まで一気にやっちゃおうよー」って声が聞こえてきそうなので書いておきます。

あまりオススメはしませんが、一気に送信したい方はどうぞ!
※事前に必ずテストして自己責任でお願いします

mailItemObj.Display ‘下書きを表示
↓メソッドを書き換えます。
mailItemObj.Send ‘送信

これでマクロを実行すると、メール送信まで行われます。

送信したメールは、Outlookの[送信済みアイテム]に入ります。

以上です!

ねぇもりさん、添付ファイルも付けられないかなぁ?
もり
もり
できるよ~!次の記事で紹介するね!
【VBAでOutlook操作】複数ファイルを添付できる!下書きメールを一括作成するマクロExcelシートのデータを元に、Outlookの下書きメールを一括作成するマクロです。キーワードに一致する複数ファイルをまとめて添付できるのがポイントです ...
2020年・小学校でプログラミング教育が必修化

2020年、いよいよ小学校でプログラミング授業が始まります。続く2021年からは「中学校」で開始。2022年からは「高校」でも導入されます。

あと何年かしたら、あたりまえにプログラミングを使いこなす新入社員が入ってくるかもしれません。2020年、大人も一緒に学んでみませんか?

1週間のオンライン無料体験
いつでもどこでも今すぐ視聴OK