VBAを使ってメールを自動作成する方法(VBAライブラリ)

2021年9月30日

以前紹介したメールを自動作成するマクロを汎用的なライブラリにしました。

ライブラリ化しておけばマクロをコピーする手間が省けるので、メールの自動作成をよく使うという方は使用してみてください。

VBAでメールを自動作成する方法については上の記事で説明しています
まだ読んでいない方は先にこちらを読んでください

メールを自動作成するライブラリ

Private Sub MakeEmail(toAddress As String, ccAddress As String, bccAddress As String, _
                      subject As String, text As String, signature As String)
'Outlookメールを作成
'Microsoft Outlook xx.x Object Libraryが必要

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

  'Outlookオブジェクト/MailItemオブジェクトの作成
  Set objOutlook = New Outlook.Application
  Set objMail = objOutlook.CreateItem(olMailItem)

  With objMail
    .To = toAddress 'Toメール宛先
    .cc = ccAddress 'CCメール宛先
    .BCC = bccAddress 'BCCメール宛先
    .subject = subject 'メール件名
    .BodyFormat = olFormatPlain 'メールの形式
    .body = text & vbLf & vbLf & signature 'メール本文
    .Display ' メール作成画面の表示
    '.Send 'メール送信
  End With

  Set objOutlook = Nothing
End Sub
Sub test()
    Call MakeEmail("to@abc", "cc@abc", "bcc@abc", "タイトル", "本文", "署名")
End Sub

内容的には前回の内容とほぼ一緒です。
アドレス(to,cc,bcc)/タイトル/本文/署名の6つの引数を受け取ってOutlookメールを自動作成します。

少し工夫してあるのは署名部分(signature)です。

.body = text & vbLf & vbLf & signature 'メール本文

Outlook的には本文も署名もbodyなのですが、人間が区別しやすいためにtextとsignatureに分けています。

本文の後、改行なしで署名が来るとおかしいため、vbLfで2回改行した後に署名を入れています。

使用イメージとしては、Excel上の署名欄は毎回固定で本文のみを変更していく感じです。

メールの自動作成をよく使うという方は使用してみてください

筆者おすすめのVBA本はこちらです。

created by Rinker
技術評論社
¥2,178 (2021/10/18 10:25:13時点 Amazon調べ-詳細)
created by Rinker
¥2,948 (2021/10/18 21:50:31時点 Amazon調べ-詳細)

《VBA上級者を目指す人へのおすすめ》

created by Rinker
技術評論社
¥3,608 (2021/10/18 10:25:15時点 Amazon調べ-詳細)

他の「VBA」の記事はこちらからどうぞ

VBA

Posted by やろまい