VBA

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

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

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

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

 

outlook1-1

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

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

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

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

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

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

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

outlook1-3

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

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

ソースコード

マクロの使い方

①参照設定
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年~ 小学校で開始
  • 2021年~ 中学校で開始
  • 2022年~ 高等学校で開始
  • 2024年~ 高校受験科目に新設

学校での必修化に向けて、すでに子ども向けプログラミングスクールが多数開校されています。

あと数年もすれば、あたりまえにプログラミングができる新入社員がやってくる時代になります。

プログラミングってなに?どんなもの?まずは無料体験から試してみませんか?

 

1週間の無料体験あり!
オンラインスクール実績No.1!