【エクセルVBA】エクセルシートに一覧化された複数の連絡先に本文を変えつつOutlookでメールを一括送信する方法


エクセルvba,メール一括送信

みなさまこんにちは、ノグチです。

前回は、エクセルVBAからOutlookを操作して、エクセルシートに記入された内容を、メールの件名と本文にセットして、Outlookからメールを送信させる方法をご紹介しました。

【エクセルVBA】Outlookでメールを作成・送信する方法
エクセルシートに記入された件名や本文を、エクセルVBAによってOutlookのメールの件名と本文にセットしてメール送信する方法をご紹介しています。VBAでメールの送信ができれば、宛先に応じてメールの本文を変えつつ一斉に送信することもできますよ。

仕事の取引先にメールをする際、メールの冒頭には相手の会社名、部署名、担当者名を入れたりしますよね。

ビジネスメールのマナーとはいえ、1件、2件ならまだしも、10件、20件となってくると中々苦痛な作業です。

コピー&ペーストしたとしても、会社名や名前を間違ってコピペしてしまっていたらもう最悪です。

ミスの防止と手間削減のために、それ、エクセルVBAで自動化してしまいましょう!

今回は、前回ご紹介したエクセルVBAでメールを送信するコードにFor~Nextを加えて、エクセルシートに一覧化された複数のメールアドレスに、メール本文を変えつつメールを一括送信する方法をご紹介します!

エクセルシートに一覧化された送信先に一括でメールを送りたい

例えば、こちらのリスト。vba,エクセルシート,送信先

リストのD列にあるメールアドレスに、メールの本文にA列の会社名、B列の部署名、C列の担当者名を盛り込みつつ、メールを送信したいとします。

メール本文のテンプレートがこちらのシート。メール本文,エクセルシート,vba,outlook

B2セルにあるメール本文の冒頭に送信先シートにある会社名、部署名、担当者名を追加しつつ、メールを送っていきます。

本文を変えつつ複数メールアドレスにメールを一括送信するコード

上の送信先シートの送信先に、メール内容シートの本文と送信先シートの情報を結合させてメール送信するコードがこちら。

何も難しいことはありません。

前回の記事でご紹介したコードのCreateItemメソッドでMailItemオブジェクトを作成する部分からSendメソッドでメール送信する部分をFor~Next文で挟んで、With文とメール本文を加工するステップを修正しただけという、結構単純なコードです。

(CreateItemメソッドとMailItemオブジェクトについては、前回記事をご覧ください。)

CreateItemメソッドの場所に注意

上のコードのご紹介文でも書いた通り、MailItemオブジェクトを作成するCreateItemメソッドは、For~Next文の中に書くようにします。

CreateItemメソッドでMailItemオブジェクトを作成するのは、言うなればOutlookで「新しいメール」ボタンをクリックしていることと同義です。

この処理がFor~Next文の中に無いと折角プロパティの指定をしても、そもそもプロパティをセットする「新しいメール」が無いのでエラーになってしまいます。

上のコードで作成されたメール

上のコードによって、Outlookで作成されたメールはこんな感じになります。

vba,meilitem,メール,outlook

宛先には送信先がセットされて、本文の冒頭は、メール内容シートの本文に送信先シートの会社名、部署名、担当者名が追加されていますね。

これで、メール本文を変えつつ複数の送信先へメール送信ができますよ!

最後に

今回は、エクセルシートに一覧化された連絡先に、本文を変えつつOutlookでメールの一斉送信をする方法をご紹介しました。

「メールを沢山送りたい、本文は定型文でいいけど、文頭だけは相手の名前を入れないと失礼…仕方ない、1件ずつコピペで本文を作ってメール送信しよう。」

これ、私が昔在籍していた総務担当者が実際にやっていたことなんです。

一言相談してもらえれば、今回の記事のような方法を伝えられたのにな…という反省の念を込めての今回の方法のご紹介でした。

それでは、最後までお読みいただきありがとうございました!

次回記事で、VBAで作成したメールの下書きの内容を、メール送信前にチェックする方法をご紹介しています。

エクセルVBAでOutlookメールの下書きを作成・表示して送信前に内容チェックする
OutlookのMailItemオブジェクトのDisplayメソッドを使って、VBAで作成したOutlookのメール内容を、メール送信前にチェックする方法をご紹介しています。「VBAでメールを作成するのは便利だけど、内容をチェックしないでメール送信してしまうのは心配...」という方にお勧めです。

連載目次:エクセルVBAでOutlookを操作してみよう!

エクセルVBAでOutlookのメール作成、送信などの操作をする方法をご紹介しています。メーラーとして便利なOutlookですが、VBAと組み合わせて更に便利に使ってしまいましょう。

  1. 【エクセルVBA】エクセルVBAでOutlookを操作しよう!参照設定とOutlookアプリケーションオブジェクトの取得
  2. 【エクセルVBA】Outlookでメールを作成・送信する方法
  3. 【エクセルVBA】エクセルシートに一覧化された複数の連絡先に本文を変えつつOutlookでメールを一括送信する方法
  4. エクセルVBAでOutlookメールの下書きを作成・表示して送信前に内容チェックする
  5. エクセルVBAでOutlookの連絡先を登録する方法
  6. 【エクセルVBA】GetNamespaceメソッドでOutlookのデータフォルダにアクセスする方法
  7. エクセルVBAでOutlookの受信メールフォルダとサブフォルダ名を書き出す方法
  8. エクセルVBAでOutlookの受信メールをワークシートに書き出す方法

  投稿者プロフィール

ノグチフリーランスPG・SE
元製造子会社SE。
業務システム保守・導入両方やった経験をお伝えすることで、少しでもシステムや手作業に悩まされる人が減ればいいなぁと日々夢見ております。

コメント