アプリ版:「スタンプのみでお礼する」機能のリリースについて

Bookを閉じて「保存した時のみ」メールを送信するマクロです。
--------------------------------------------
Private Sub Workbook_AfterSave(ByVal Success As Boolean)
On Error GoTo ErrorHandler
Dim objOutlook As Outlook.Application
Dim objMail As Outlook.MailItem
Set objOutlook = New Outlook.Application
Set objMail = objOutlook.CreateItem(olMailItem)
With objMail
.To = "test@"
.CC = ""
.BCC = ""
.Subject = "【テスト】自動送信"
.Body = "このメールは自動テストメールです"
.BodyFormat = olFormatPlain
End With
objMail.Send
GoTo Finally
ErrorHandler:
MsgBox "メールの送信に失敗しました", vbOKOnly + vbCritical
Finally:
Set objOutlook = Nothing
End Sub
--------------------------------------------
AfterSaveではちょこちょこ上書き保存でも実行してしまうので
最後に保存して閉じた時だけ実行出来るようにしたいと思っています。
ご教授お願いします。

A 回答 (3件)

Option Explicit


Private Saved As Boolean

Private Sub Workbook_AfterSave(ByVal Success As Boolean)
    Saved = True
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    If Not Saved Then Exit Sub
    On Error GoTo ErrorHandler
    Dim objOutlook As Outlook.Application
    Set objOutlook = New Outlook.Application
    With objOutlook.CreateItem(olMailItem)
        .To = "test@"
        .CC = ""
        .BCC = ""
        .Subject = "【テスト】自動送信"
        .Body = "このメールは自動テストメールです"
        .BodyFormat = olFormatPlain
        .Send
    End With
Finally:
    Set objOutlook = Nothing
    Exit Sub
ErrorHandler:
    MsgBox "メールの送信に失敗しました", vbOKOnly + vbCritical
    Resume Finally
End Sub
    • good
    • 1
この回答へのお礼

ご回答ありがとうございました。

>Private Saved As Boolean
このままコピペしましたらコンパイルエラーとなりましたので
削除し思う通り、作動いたしました。
短時間の中、ありがとうございました。

お礼日時:2022/03/18 21:34

Private Sub Workbook_AfterSave(ByVal Success As Boolean)



この中で更新フラグを立てて

Private Sub Workbook_BeforeClose(Cancel As Boolean)

この中で更新フラグを見て処理をする。
    • good
    • 1
この回答へのお礼

ご回答ありがとうございます。

ということは??
申し訳ございません。ちょっとこれは解らないです。

お礼日時:2022/03/18 20:41

Private Sub Workbook_AfterSave(ByVal Success As Boolean)



Private Sub Workbook_BeforeClose(Cancel As Boolean)
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
BeforeCloseでは更新が無い時も実行してしまいます。
更新時の保存のみに実行したいと思ってます。

お礼日時:2022/03/18 19:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!