みなさまこんにちは、ノグチです。
前回は、エクセルシートに一覧化された複数のメールアドレスに、本文を変えつつ、メールを一括送信する方法をご紹介しました。
でも、一括送信できるとはいえ、送信前に内容チェックしたいな、ということもありますよね。
そんな時に使えるのが、MailItemオブジェクトのDisplayメソッドです。
今回は、このDisplayメソッドで、VBAで作成したOutlookのメールを、メール送信前に内容をチェックする方法をご紹介します!
MailItemオブジェクトとは何ぞや?については、こちらの記事でご紹介していますので、併せてご覧ください。
Displayメソッドとは
MailItemオブジェクトのプロパティに値をセットした後にこのメソッドでメール作成画面を開くと、宛先やメール本文が意図した通りにセットされているか?文章がおかしくないか?をチェックすることができるのです。
記述方法はコチラ。
メール送信前にメールの内容をチェックするコード
Dim objOutlook As Outlook.Application Dim objMail As Outlook.MailItem Set objOutlook = New Outlook.Application Set objMail = objOutlook.CreateItem(olMailItem) With objMail .To = "xxxxxxx@xxxx.co.jp" 'メール宛先 .Subject ="〇〇〇の件" 'メール件名 .BodyFormat = olFormatPlain 'メールの形式 .Body = "メール本文" 'メール本文 .Display End With
CreateObjectメソッドでMailItemオブジェクトを作成して、MailItemオブジェクトのプロパティで値をセットした後、Displayメソッドでメール内容をチェックするというコードです。
当たり前ですが、Displayメソッドは、MailItemオブジェクトの各プロパティに値をセットした後に記述しましょう。
でないと、まっさらなメール作成画面が開いてしまうことになります。
VBAで作成したメールの内容をチェックする
実際に上のコードを実行して開いたメール画面がこちら。
この通り、Outlookのメール作成画面が開いて、VBAのコードでセットした内容をチェックできます。
Displayメソッドで開いたメール作成画面は、手動で「新しいメール」をクリックして開く画面と同じものなので、「送信」ボタンを押せばそのままメールが送信できますよ。
複数のメールをDisplayメソッドでチェックしたい場合
前回の記事でご紹介したような、複数の送信先にメールを送信したい場合にも、このDisplayメソッドでのメール内容チェックは使えます。
例えば、このワークシートにあるような複数送信先に対して、メールを送信したいとします。
上のコードの、MailItemオブジェクトをCreateItemメソッドで作成する部分から、MailItemオブジェクトのプロパティにメール内容をセットする部分、そしてDisplayメソッドでメール画面を表示する部分をループで挟んで、こんなコードにします。
Dim objOutlook As Outlook.Application Dim i As Long Dim rowMax As Long Dim wsList As Worksheet Dim objMail As Outlook.MailItem Set objOutlook = New Outlook.Application Set wsList = ThisWorkbook.Sheets("送信先") With wsList '送信先の件数 rowMax = .Cells(Rows.Count, 1).End(xlUp).Row '送信先の件数分繰り返す For i = 2 To rowMax Set objMail = objOutlook.CreateItem(olMailItem) With objMail .To = wsList.Cells(i, 4).Value 'メール宛先 .Subject = "〇〇〇の件" 'メール件名 .BodyFormat = olFormatPlain 'メールの形式 .Body = "メール本文" 'メール本文 .Display End With Next i End With
そしてこのコードを実行すると…
このように送信したいメール件数分、メール作成画面が表示されますので、メールの内容をチェックして「送信」をクリックしていけばOKです。
最後に
今回は、DisplayメソッドでOutlookでメールを送信する前に、メール内容をチェックする方法をご紹介しました。
これなら、メールを送信する前に、本文や送信先が自分の意図した通りにセットされているかチェックすることができますね。
それでは、最後までお読みいただきありがとうございました!
連載目次:エクセルVBAでOutlookを操作してみよう!
エクセルVBAでOutlookのメール作成、送信などの操作をする方法をご紹介しています。メーラーとして便利なOutlookですが、VBAと組み合わせて更に便利に使ってしまいましょう。
- 【エクセルVBA】エクセルVBAでOutlookを操作しよう!参照設定とOutlookアプリケーションオブジェクトの取得
- 【エクセルVBA】Outlookでメールを作成・送信する方法
- 【エクセルVBA】エクセルシートに一覧化された複数の連絡先に本文を変えつつOutlookでメールを一括送信する方法
- エクセルVBAでOutlookメールの下書きを作成・表示して送信前に内容チェックする
- エクセルVBAでOutlookの連絡先を登録する方法
- 【エクセルVBA】GetNamespaceメソッドでOutlookのデータフォルダにアクセスする方法
- エクセルVBAでOutlookの受信メールフォルダとサブフォルダ名を書き出す方法
- エクセルVBAでOutlookの受信メールをワークシートに書き出す方法