OutLookでメールを送信する前にメール内容を確認したい。【VBA】

目次

環境

Windowsの仕様

エディション:Windows 10 Pro

バージョン:20H2

経緯

VBAを使って、メールを送信することはできたのですが、「宛先」や「CC」など固定メンバー以外の人にも送るときどうするか悩んで、”メールを送信する前”を画面にメール内容を出せないか考えました。

なので、今回はメール内容を送信する手前まで行く方法を勉強しました。参考になったら幸いです。

「.Display」を使う

「.Display」を使うとうまくいきました。コードを載せます。*.Displayのコードは15行目です。

Sub SendEmail()

Dim objOutlook As Outlook.Application
Dim objMail As Outlook.MailItem
Dim wsMail As Worksheet

Set objOutlook = New Outlook.Application
Set wsMail = ThisWorkbook.Sheets(1)
Set objMail = objOutlook.CreateItem(olMailItem)

ActiveWorkbook.Save

    With wsMail
        objMail.To = .Range("A6") 'メール宛先
        objMail.CC = .Range("B6") 'CC
        objMail.Subject = .Range("C6").Value   'メール件名
        objMail.BodyFormat = olFormatPlain     'メールの形式
        objMail.Body = .Range("D6").Value  'メール本文
       obiMail.Display
    End With
  
End Sub

コードの説明をします。空白の行はカウントしてません。

1行目、マクロの名前を決めてます。

2~4行目、変数の宣言しています。

5~7行目、変数をセットしています。5行目、私はsheet1に”メール宛先”とか”メール件名”とかの情報を書いているので、それを呼ぶための文です。

8行目、ファイルを上書き保存します。

9行目、With文開始です。*私はセルに各情報を載せているので、こんな書き方ですが、直接、アドレスやメール文を”=”の後に入力しても大丈夫です。

10行目、「メールの宛先」です。複数人ある場合「&」でつなげると、複数の人に送れますよ。

11行目、「CC」です。

12行目、「メール件名」です。

13行目、「メール形式」です。

14行目、「メール本文」です。

15行目、ここが送信する前にOUTLOOKメールの本文を表示する命令です。

16行目、With文終わりです。

17行目、マクロ終わりです。

この後の展開

MsgBoxでメッセージを追加するとより分かりやすいと思います。

ここまで読んでいただきありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次