予定の内容からメールを作成するマクロ


コメントにて以下のご要望をいただきました。


登録されている予定すべてに、前日リマインドメールをお送りしています。

■対象の予定表:代理権限を付与されている上司の予定表
■予定表は会議依頼形式ではなく、すべて予定表アイテムとして手入力
(予定表アイテム例)
  <日時>2014年10月6日 10:00~10:30
  <件名>会議:人事部
  <場所>会議室A-1
  <本文>依頼者:XX OO
内容: -----------

ここから、メールのテンプレートに自動的に情報をうつすことはできるでしょうか?

■宛先=依頼者:のあとの文字をコピー
■タイトル=【最終確認】xx 月xx日 時~時 (日時のデータをコピー)
■本文=テンプレートの一部に、<件名>、<場所>、<本文>のうち、内容:のあとの文字をコピー して入れ込む

宛先のあとは、メールアドレスではなく文字列が入っていることが多いので、そのまま送信は難しいと考えておりますが、このメールアイテムだけでも自動で作成することは可能でしょうか?

ご検討頂けると幸いです。



以下のようなマクロで実現できます。
テンプレートとなるメールは OFT ファイルとして保存しておき、そのファイルのフルパスを TEMPLATE_FILE として指定します。
また、そのメールの本文で件名や場所、内容を入れ込みたいところには %件名%、%場所%、%内容% という文字列を埋め込んでおいてください。

' ここをトリプルクリックでマクロ全体を選択できます。
Public Sub SendReminder()
    Const TEMPLATE_FILE = "c:\temp\reminder.oft" ' 送信メールのテンプレートとなるファイル
    Dim apptItem As AppointmentItem
    Dim remMail As MailItem
    Dim strReq As String
    Dim strMemo As String
    '
    If TypeName(Application.ActiveWindow) = "Inspector" Then
        Set apptItem = ActiveInspector.CurrentItem
    Else
        Set apptItem = ActiveExplorer.Selection(1)
    End If
    ' テンプレートからメールを作成
    Set remMail = Application.CreateItemFromTemplate(TEMPLATE_FILE)
    ' メールの件名を設定
    remMail.Subject = "【最終確認】" & Format(apptItem.Start, "yyyy/MM/dd hh:mm") & "~" & Format(apptItem.End, "hh:mm")
    ' 予定の本文に依頼者があったら宛先に指定
    If InStr(apptItem.Body, "依頼者:") > 0 Then
        strReq = Mid(apptItem.Body, InStr(apptItem.Body, "依頼者:") + 4)
        strReq = Left(strReq, InStr(strReq, vbCrLf) - 1)
        remMail.To = strReq
    End If
    ' テンプレートの本文に含まれる %件名%、%場所% を予定のものと置き換える
    remMail.Body = Replace(remMail.Body, "%件名%", apptItem.Subject)
    remMail.Body = Replace(remMail.Body, "%場所%", apptItem.Location)
    ' 予定の本文に内容があったら取得
    If InStr(apptItem.Body, "内容:") > 0 Then
        strMemo = Mid(apptItem.Body, InStr(apptItem.Body, "内容:") + 3)
    End If
    ' テンプレートの本文に含まれる %内容% を取得した内容と置き換える
    remMail.Body = Replace(remMail.Body, "%内容%", strMemo)
    remMail.Display
End Sub

マクロの登録方法やメニューへの追加について

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中