006 Outlook VBA 依頼メール送信時に回答フォロー作業をタスクに登録

こんにちは、くのへ@MasazaneKunoheです。

私の経験上、依頼メールには必ず回答期限(または回答希望日)を書くべきであり、その回答期限が来たら必ず依頼先にフォローを行うべきです。

でも人間なので、依頼した解答期限日をうっかり忘れることもあります。
そこで、回答フォロー作業をタスクに自動登録するマクロを作ります。

依頼メール送付時に自動でタスクに追加するコード

このマクロはメール送信イベントをトリガーとして、件名が【依頼】から始まっていたら、自動的に回答フォロー作業をタスク登録する、というマクロです。

自動とは言っても、フォロー日はダイヤログでの記入式です。
入力画面でキャンセルすると、タスク登録はされません。
入力値が日付以外もタスク登録はしないようにしました。(メールは送信されます)

それがこちらのコードです。コピペで動くと思います。


Private Sub Application_ItemSend(ByVal objItem As Object, boolCancel As Boolean)

    If Left(objItem.Subject, 4) = "【依頼】" Then
        Call 依頼回収フォロー作業をタスク登録(objItem)
    End If

End Sub


Private Sub 依頼回収フォロー作業をタスク登録(ByVal objItem As Object)
 'ダイヤログボックスを表示し、回答フォロー日を入力させる
    Dim strName As String
    strName = InputBox("回答フォロー日を設定ください。YYYY/MM/DD" & vbLf & _
                        "キャンセルするとタスクに登録しません。", _
                        "依頼フォロータスク登録", _
                        Left(Date + 3, 10))
    If StrPtr(strName) = 0 Then Exit Sub 'キャンセル時にマクロ終了
    
    '日付データでなければタスク登録はキャンセルする
    If IsDate(strName) = False Then
        MsgBox "日付データではないため、タスク登録をキャンセルします。(メールは送られます)"
        Exit Sub
    End If

 'タスク登録作業
    Dim objTaskItem As TaskItem
    Set objTaskItem = CreateItem(olTaskItem)

    With objTaskItem
        .Subject = "回答フォロー" & objItem.Subject 'タスク件名設定
        .StartDate = strName                        'タスク日
        .ReminderSet = True                         'リマインダセット
        If .ReminderSet = True Then                 'リマインダ日もタスク日とする
            .ReminderTime = strName
        End If
        
    'いつのメールのことか本文にメモっておく
        .Body = objItem.ReceivedTime & "に送付したメールの回答フォロー"

    'タスクに登録する
        .Save
    End With

End Sub

このマクロは、メール送信イベントに関するマクロなので、標準モジュールではなく↓ここに入れてください。

画像に alt 属性が指定されていません。ファイル名: Untitled-37.png

今後の展開

ついでにフォローメールの下書きを作って保存してくれたら便利じゃないですか?
次回はこれを実装します。

次の記事でまた会いましょう~
🦅バサバサ~

感想等はツイッターにお願いします。こちら。

くのへスタジオはこちら。

Outlook-VBAコーナーはこちら。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です