【エクセルVBA】Thunderbirdのメール自動送信

VBA

※本サイトはアフィリエイト広告を利用しています。

以前、Outlookを使ったメールの自動送信の記事を書いたのですが、今回はTunderbirdを使った方法のご紹介です。

ちなみにOutlookのメール自動送信についてはこちら。

実行したいこと

今回実行したいことは次の通り

  • 件名はG12セルの内容を取得
  • メール本文はG13セルの内容を取得。(氏名)の部分を宛先メールアドレスに対応した人の名前に置き換える
  • 送信先メールアドレスはC列の3行目~6行目
  • G25セルに書いてある添付ファイルを添付する

コードの紹介

早速コードの紹介です。こちらのコードをコピペしてお使いいただけます。

Sub SendMail()

    Dim MailTo As String, MailBody As String
    Dim i As Long
    
    For i = 3 To 6
        MailTo = Cells(i, 3)
        MailBody = Cells(13, 7)
        
        MailBody = Replace(MailBody, "(氏名)", Cells(i, 2))
        
        Shell "C:\Program Files\Mozilla Thunderbird\thunderbird.exe -compose " _
        & "to=" & MailTo & "," & "subject= お知らせ" & "," & "body=" & MailBody _
        & "," & "attachment=" & Cells(25, 6)
    Next i
    
End Sub

コードの解説

今回実行したいことは下記の4点です。1つずつ、対応する部分を解説していきます。

  • 件名はG12セルの内容を取得
  • メール本文はG13セルの内容を取得。(氏名)の部分を宛先メールアドレスに対応した人の名前に置き換える
  • 送信先メールアドレスはC列の3行目~6行目
  • G25セルに書いてある添付ファイルを添付する

メールの作成画面を開く

こちらは上の4点には書いてないのですが、まずは宛先やメール本文を入力するThunderbirdの画面を開く必要があります。

エクセル外のアプリを起動するにはShellという関数を使います。
Shell “C:\Program Files\Mozilla Thunderbird\thunderbird.exe -compose “
この1行でThunderbirdのメールの作成画面を開くことができます。
“C:\Program Files\Mozilla Thunderbird\thunderbird.exeというのがThunderbirdのexeファイルのパスになります。
※このパスはThunderbirdをインストールした時に保存したフォルダによるので、人によって違う場合があります。適宜変更してください。

exeファイルの後に -compose を付けることによってメールの作成画面が開きます。

件名を設定

“subject=”:件名を指定
『=』のあとに件名を書くことで、メールの件名を指定できます。
例)“subject= お知らせ”
サンプルコードではG12セルに書いてある件名を使いたいので“subject=” & Range(“G12”) となっています。文字列をつなげるので、途中に『&』が入っています。

メール本文を設定

“body=”:本文を指定
『=』のあとに送信したい文章を書くことで、メールの本文を指定できます。
ただ、メール本文は長いのでG13セルに書いた内容を取ってきていますので下記のようになります。
“body=” & Range(“G13”)

氏名の置換

送り先のメールアドレスに合わせて(氏名)の部分を人の名前に置き換えたいので、Replaceを使います。
MailBodyという変数を作っておいて、一旦その変数にG13セルの文章を代入します。MailBody = Range(“G13”)の部分がこれに当たります。
そして、MailBody = Replace(MailBody, “(氏名)”, Cells(i, 2))(氏名)の部分をB列の名前に置き換えます。B列の名前とは下図の赤丸のところですね。

For文を使って i を3から6まで変化させているので、A、B、C、Dと順番に(氏名)の部分が変化していきます。

送信先を設定

“to=”で宛先を指定します。
『=』のあとにメールアドレスを書くことで宛先を指定できるので、例えば“to= aaa@gmail.com”というような書き方ができます。
サンプルコードではC列の3行目から6行目に書かれているメールアドレスを宛先にするためaaa@gmail.comの部分がCells(i, 3)になっています。

ファイルを添付

“attachment=” で添付ファイルを指定します。
『=』のあとに添付ファイルのパス(ファイル名まで含む)を書くことで添付するファイルを指定することができます。
サンプルコードでは、F25セルに添付ファイルのパスを書いているので、そのパスを取ってきているため“attachment=” & Range(“F25”)という書き方になっています。

動画

YouTubeでも解説をしております。

少しコードの内容が違うのですが、動画の方が理解がしやすいと思いますので是非こちらも参考にしてみてください。

【エクセルVBA】メール自動作成~Thunderbird編~

まとめ

今回はThunderbirdを使ったメールの自動作成の方法を紹介しました。

同じ内容のメールを送るにしても、メール本文の冒頭に書く名前とメールアドレスをいちいちコピペするのは面倒&組み合わせを間違えてしまう恐れがあるので、ぜひ使ってみて下さい。

時間短縮&ミス削減は事務作業においてとても重要です!

こちらのブログが少しでも業務効率化のお役に立てれば嬉しいです。

お問い合わせ、お仕事のご依頼などがありましたら下記のお問い合わせフォームからご連絡ください。
お問い合わせフォーム
VBAの作成であれば50,000円ほどから、自分で使うVBAの書き方で詰まっている方のお手伝いであれば10,000円ほどから承ります。

VBA
スポンサーリンク
スポンサーリンク
りこをフォローする
エクセルVBAの寺子屋

コメント

タイトルとURLをコピーしました