概要:
メールテンプレートを自動生成するVBS。
目的:
業務で扱うメールについて、いちいち作成したり編集したりするのがめんどくさかったので、VBS化しました。
メールの内容を一部編集しなければいけない時があるので、自動送信までは組み込んでいません。
送信する内容がほぼ不変であり、チェックする必要がなければタスクスケジューラやJP1・Systemwalker等と組み合わせれば自動送信も可能です。
# そこまでするならもうPGを別で用意した方がいいかもしれませんが
プログラム:
Option Explicit
'*************************************************************
'* メールテンプレート
'*************************************************************
'*************************************
'* 変数宣言
'* 変数名は使いやすい用にリファクタリングしてください.
'*************************************
Dim outlook, item, mailBody, mailSubject, name, mailAddress, timeZone, byLine, mailTo, mailCc, kaigyo
'*************************************
'* 個人で入力させる項目郡
'*************************************
' 名前
name = "太郎"
' 自分のメールアドレス
mailAddress = "taro.test@test.com"
' 送信先:TO
mailTo = "jisan.hanasaka@test.com;"
' 送信先:CC
mailCc = ""
'*************************************
'* 初期処理
'*************************************
Set outlook = CreateObject("Outlook.Application")
Set item = outlook.CreateItem(0)
' 改行コード
kaigyo = vbCrLf
'*************************************
'* 時刻を取得する
'*************************************
timeZone = Right("0" & Hour(Now) - 1, 2) & ":01-" & Right("0" & Hour(Now), 2) & ":00"
'*************************************
'* メール件名
'* 以下の例では日時等も加工している.
'*************************************
mailSubject = "件名サンプル "
mailSubject = mailSubject & Year(Date) & "/" & Right("0" & Month(Date), 2) & "/" & Right("0" & Day(Date), 2)
'*************************************
'* メール本文
'*************************************
mailBody = "本文サンプル" & kaigyo
mailBody = mailBody & "こんにちは、" & name & "です。" & kaigyo & kaigyo
mailBody = mailBody & "頑張って改行してます。" & kaigyo
mailBody = mailBody & "面倒くさいです。" & kaigyo & kaigyo
'*************************************
'* 署名を作る
'*************************************
byLine = "----------------------------------------------" & kaigyo
byLine = byLine & "業務で使うなら使ってください。" & kaigyo
byLine = byLine & "部署名変更時は注意!!!" & kaigyo
byLine = byLine & "----------------------------------------------" & kaigyo
mailBody = mailBody & byLine
'*************************************
'* メール内の設定
'*************************************
item.To = mailTo
item.Cc = mailCc
item.Subject = mailSubject
item.Body = mailBody
item.Display
' 以下のコメントアウトを解除して、更に上のitem.Displayをコメントアウトすれば、
' メールの画面が表示されずにそのまま送信される。
' item.Send
'*************************************
'* 終了処理
'*************************************
Set item = Nothing
Set outlook = Nothing
WScript.Quit 0
実行環境:
Win7Pro。
Windows環境なら特に問題はないと思いますが...
備考:
他にもテンプレソースを挙げてくれている人は多数いるので、それらを参考にしつつ、自分の使いやすい物を使用するといいかと思います。