お世話になります。
現在、Excel VBA(Excel2010)で、Outlook2010を立ち上げて、添付のExcelの表のE列【GL承認日】に日付を入れると、日付書式を確認して、メールが送信されるVBAを作成しています。
そこで、下記のVBAの下の方にある「myMail.Send」でメールが送信されるようになっていて、メールが送信された後、Outlookの【送信済みフォルダ】に送信済みメールが入ります。
その送信済みメールを【送信済みフォルダ】に入ったら、完全に削除するようにしたいのですが、どのようにVBAを追加すれば宜しいでしょうか?
ご存知の方、是非ご教示宜しくお願い致します。
↓該当のExcel VBAです。
----------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim myOL As Object
Dim myMail As Object
Dim myBody As String
Dim n As Long
Dim mDate As Variant
On Error Resume Next
'GL承認日の列の日付書式指定
mDate = Array("yyyy/mm/dd")
'GL承認日の該当セルの日付書式を確認
For Each wz In mDate
'GL承認日の該当セルが空白でない場合は以下を処理
If Cells(Target.Row, Target.Column).Value <> "" Then
If InStr(Cells(Target.Row, Target.Column).NumberFormatLocal, wz) > 0 Then
'メールアプリケーションをOutlookに指定
Set myOL = GetObject(, "Outlook.Application")
On Error GoTo 0
If myOL Is Nothing Then
Set myOL = CreateObject("Outlook.Application")
myOL.getnamespace("MAPI").GetDefaultfFolder(6).display
End If
Set myMail = myOL.CreateItem(0)
'B、C行のセル位置を数値で取得
n = Cells(Target.Row, Target.Column).Row
'メール本文
myBody = "振替伝票入力のGL承認が " & Format(Cells(Target.Row, Target.Column).Value, "yyyy/mm/dd") _
& " に完了しました。" & vbNewLine & vbNewLine _
& "●振替伝票No: " & Range("C" & n).Value & vbNewLine & vbNewLine _
& "================================" & vbNewLine _
& " ▲▲部 ××グループ" & vbNewLine _
& "================================"
If Range("B" & n).Value = "ooo" Then
myMail.to = "ooo@***.co.jp"
'ElseIf Range("B" & n).Value = "qqq" Then
' myMail.To = "qqq@***.co.jp"
End If
'メールのタイトル、本文、本文の形式を指定
myMail.Subject = "【振替伝票 GL承認完了通知】"
myMail.Body = myBody
myMail.BodyFormat = 1 'テキスト形式
'メールを送信
myMail.Send
(↑此処でメールが【送信済みフォルダ】に入りますが、このタイミングで【送信済みフォルダ】に入ったメールを完全削除したいです。)
'変数をリセット
Set myMail = Nothing
Set myOL = Nothing
Else
Exit Sub
End If
End If
Next
Exit Sub
End Sub
お礼
ご返信ありがとうございます! myMail.DeleteAfterSubmit = true を、Mymail.Send の前に入れてみましたところ、望み通りの動作が可能になりました。 (送信済みアイテムに入る事なく、消えました。) 大変助かりました、有難うございました。