2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

定期的に送るメールについて考える

Last updated at Posted at 2023-02-07

はじめに

日次、週次、月次…と定期的に送るメールについて
今まではテンプレートを作成して都度値変えて…とやっていたのですが、
もう少し楽にできないかな…と考えているので、その思考プロセスを記録として残します。

(いまのところの)結論

Outlook VBAを使って
こんな感じのを作りました。
例として毎日送る日報を想定しています。

Sub 日報メールの作成()
  Dim myItem As Outlook.MailItem
  Set myItem = Application.CreateItemFromTemplate("フォーマットファイルパス.oft")
  today = Format(Date, "yyyymmdd")
  Dim attatchNippoPDF As String
  Dim attatchNippoPDFFileName As String
  attatchNippoPDFFileName = "作業日報_" + today + "_なまえ.pdf"
  
  attatchNippoPDF = "添付ファイル保存先" + attatchNippoPDFFileName
  
  myItem.Subject = Replace(myItem.Subject, "%今日%", today)
  myItem.Body = Replace(myItem.Body, "%今日%", today)
  myItem.Display
  If Dir(attatchNippoPDF) <> "" Then
    myItem.Attachments.Add (attatchNippoPDF)
    MsgBox "作成しました!送る前にPDFの内容をもう一度確認しましょう!"
  Else
    MsgBox attatchNippoPDF & vbCrLf & "が存在しません。先に作成しましょう!"
    myItem.Close olDiscard
  End If
    
End Sub

実際にやってみた

前提として、添付で送るPDFを、所定のフォルダに作成しておく必要がありますが、
それさえ作成しておけば、送付メールはこれでいけるかなと思います。
作成していない場合は、「先に作成しましょう!」の旨のダイアログを出して、作成したMsgを保存せずに終了します。

テンプレート

image.png
こんな感じのテンプレートを用意しました。
ソースでは本文のエイリアスも置換していますが、
今回は件名部分だけ変わる感じのテンプレートです。

動かしてみた

image.png

作成しました!のダイアログが出ました。
件名のエイリアスも、しっかり今日の日付に置換されています。
OKをクリックすると…
image.png
添付ファイルもばっちり添付されました。
いえーい。

参考文献

そもそもOutlook VBAの情報が非常に少ないので、
探すの結構苦労しました。
以下の3つを参考にして作りました。

おわりに

毎日使っているメール、コピペでも簡単に作れるじゃん!
と言われたらその通りなんですが、もう少しだけ簡単にしたいな…と思う方に届けば幸いです。

また、もっと楽にできるよ!とか
こういうコード書いたらもっと対応できる幅広がらない?
等ありましたらコメントいただけるととても嬉しいです。
いいねもください(豹変)

ちなみにお師匠様に「定期的に送るメール、テンプレからコピペするのめんどくさくないですか?」って言ったら「えぇ~~~!?」(絶句)と言われました。

2
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?