Stop Outlook VBA from sending mail within ItemSend() when an error event has occurred
Outlook mailitem gets sent when an error occurs during run-time within an ItemSend() event. Placing Cancel = True
in the code does not even stop this from happening. Is it an inherent VBA flaw?
How would I get around this problem? Any ideas are welcome.
Public WithEvents myApp As Outlook.Application
Sub Initialize_handler()
Set myApp = Application
End Sub
Private Sub myApp_ItemSend(ByVal Item As Object, Cancel As Boolean)
On Error GoTo ErrorHandler_myApp_ItemSend
Cancel = True
' Do something erroneous
Exit Sub
ErrorHandler_myApp_ItemSend:
Cancel = True
MsgBox "Error: " Err.Description
Err.Clear
End Sub
vba events outlook onerror
add a comment |
Outlook mailitem gets sent when an error occurs during run-time within an ItemSend() event. Placing Cancel = True
in the code does not even stop this from happening. Is it an inherent VBA flaw?
How would I get around this problem? Any ideas are welcome.
Public WithEvents myApp As Outlook.Application
Sub Initialize_handler()
Set myApp = Application
End Sub
Private Sub myApp_ItemSend(ByVal Item As Object, Cancel As Boolean)
On Error GoTo ErrorHandler_myApp_ItemSend
Cancel = True
' Do something erroneous
Exit Sub
ErrorHandler_myApp_ItemSend:
Cancel = True
MsgBox "Error: " Err.Description
Err.Clear
End Sub
vba events outlook onerror
Put a breakpoint on both Cancel = True lines, and run your code. Does the code reach either?
– Excelosaurus
Nov 14 '18 at 2:59
1
If all this code is in ThisOutlookSession would you edit the question to remove unneeded complications, by removing the first four lines and changing toPrivate Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
. Would you put in anErr.Raise
so potential respondents do not introduce mistakes trying to create an error.
– niton
Nov 14 '18 at 14:56
nitro@ thanks for the tip.
– Barok
Nov 25 '18 at 5:26
add a comment |
Outlook mailitem gets sent when an error occurs during run-time within an ItemSend() event. Placing Cancel = True
in the code does not even stop this from happening. Is it an inherent VBA flaw?
How would I get around this problem? Any ideas are welcome.
Public WithEvents myApp As Outlook.Application
Sub Initialize_handler()
Set myApp = Application
End Sub
Private Sub myApp_ItemSend(ByVal Item As Object, Cancel As Boolean)
On Error GoTo ErrorHandler_myApp_ItemSend
Cancel = True
' Do something erroneous
Exit Sub
ErrorHandler_myApp_ItemSend:
Cancel = True
MsgBox "Error: " Err.Description
Err.Clear
End Sub
vba events outlook onerror
Outlook mailitem gets sent when an error occurs during run-time within an ItemSend() event. Placing Cancel = True
in the code does not even stop this from happening. Is it an inherent VBA flaw?
How would I get around this problem? Any ideas are welcome.
Public WithEvents myApp As Outlook.Application
Sub Initialize_handler()
Set myApp = Application
End Sub
Private Sub myApp_ItemSend(ByVal Item As Object, Cancel As Boolean)
On Error GoTo ErrorHandler_myApp_ItemSend
Cancel = True
' Do something erroneous
Exit Sub
ErrorHandler_myApp_ItemSend:
Cancel = True
MsgBox "Error: " Err.Description
Err.Clear
End Sub
vba events outlook onerror
vba events outlook onerror
edited Nov 14 '18 at 2:05
Barok
asked Nov 14 '18 at 1:41
BarokBarok
508
508
Put a breakpoint on both Cancel = True lines, and run your code. Does the code reach either?
– Excelosaurus
Nov 14 '18 at 2:59
1
If all this code is in ThisOutlookSession would you edit the question to remove unneeded complications, by removing the first four lines and changing toPrivate Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
. Would you put in anErr.Raise
so potential respondents do not introduce mistakes trying to create an error.
– niton
Nov 14 '18 at 14:56
nitro@ thanks for the tip.
– Barok
Nov 25 '18 at 5:26
add a comment |
Put a breakpoint on both Cancel = True lines, and run your code. Does the code reach either?
– Excelosaurus
Nov 14 '18 at 2:59
1
If all this code is in ThisOutlookSession would you edit the question to remove unneeded complications, by removing the first four lines and changing toPrivate Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
. Would you put in anErr.Raise
so potential respondents do not introduce mistakes trying to create an error.
– niton
Nov 14 '18 at 14:56
nitro@ thanks for the tip.
– Barok
Nov 25 '18 at 5:26
Put a breakpoint on both Cancel = True lines, and run your code. Does the code reach either?
– Excelosaurus
Nov 14 '18 at 2:59
Put a breakpoint on both Cancel = True lines, and run your code. Does the code reach either?
– Excelosaurus
Nov 14 '18 at 2:59
1
1
If all this code is in ThisOutlookSession would you edit the question to remove unneeded complications, by removing the first four lines and changing to
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
. Would you put in an Err.Raise
so potential respondents do not introduce mistakes trying to create an error.– niton
Nov 14 '18 at 14:56
If all this code is in ThisOutlookSession would you edit the question to remove unneeded complications, by removing the first four lines and changing to
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
. Would you put in an Err.Raise
so potential respondents do not introduce mistakes trying to create an error.– niton
Nov 14 '18 at 14:56
nitro@ thanks for the tip.
– Barok
Nov 25 '18 at 5:26
nitro@ thanks for the tip.
– Barok
Nov 25 '18 at 5:26
add a comment |
2 Answers
2
active
oldest
votes
I have no explanation why the mail is not sent when closing the inspector.
Option Explicit
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
Dim objInsp As Inspector
On Error GoTo ErrorHandler_Application_ItemSend
' Do something erroneous
Err.Raise 1
Exit Sub
ErrorHandler_Application_ItemSend:
Cancel = True
MsgBox "Error: " & Err.Description
Set objInsp = Item.GetInspector
' Look for the mail in the drafts folder
objInsp.Close olSave
End Sub
Thanks for providing code. It is mind boggling, because suddenly the code seems to work fine again. I can't be sure but it may perhaps have nothing to do with the problem asked. I will have to wait and see if the problem re-surfaces.
– Barok
Nov 25 '18 at 5:23
add a comment |
You couldn’t use On Error GoTo to get error event, you could try to use If statement. For example:
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
On Error Resume Next
If Not Left(LCase(Item.Subject), 3) = "re:" And Not Left(LCase(Item.Subject), 3) = "fw:" Then
prompt$ = "You sending this from " & Item.SendUsingAccount & ". Are you sure you want to send it?"
If MsgBox(prompt$, vbYesNo + vbQuestion + vbMsgBoxSetForeground, "Check Sending Account") = vbNo Then
Cancel = True
End If
End If
End Sub
For more information, please refer to this link:
Warn Before Sending Messages to the Wrong Email Address
Application.ItemSend Event (Outlook)
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53291978%2fstop-outlook-vba-from-sending-mail-within-itemsend-when-an-error-event-has-occ%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
I have no explanation why the mail is not sent when closing the inspector.
Option Explicit
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
Dim objInsp As Inspector
On Error GoTo ErrorHandler_Application_ItemSend
' Do something erroneous
Err.Raise 1
Exit Sub
ErrorHandler_Application_ItemSend:
Cancel = True
MsgBox "Error: " & Err.Description
Set objInsp = Item.GetInspector
' Look for the mail in the drafts folder
objInsp.Close olSave
End Sub
Thanks for providing code. It is mind boggling, because suddenly the code seems to work fine again. I can't be sure but it may perhaps have nothing to do with the problem asked. I will have to wait and see if the problem re-surfaces.
– Barok
Nov 25 '18 at 5:23
add a comment |
I have no explanation why the mail is not sent when closing the inspector.
Option Explicit
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
Dim objInsp As Inspector
On Error GoTo ErrorHandler_Application_ItemSend
' Do something erroneous
Err.Raise 1
Exit Sub
ErrorHandler_Application_ItemSend:
Cancel = True
MsgBox "Error: " & Err.Description
Set objInsp = Item.GetInspector
' Look for the mail in the drafts folder
objInsp.Close olSave
End Sub
Thanks for providing code. It is mind boggling, because suddenly the code seems to work fine again. I can't be sure but it may perhaps have nothing to do with the problem asked. I will have to wait and see if the problem re-surfaces.
– Barok
Nov 25 '18 at 5:23
add a comment |
I have no explanation why the mail is not sent when closing the inspector.
Option Explicit
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
Dim objInsp As Inspector
On Error GoTo ErrorHandler_Application_ItemSend
' Do something erroneous
Err.Raise 1
Exit Sub
ErrorHandler_Application_ItemSend:
Cancel = True
MsgBox "Error: " & Err.Description
Set objInsp = Item.GetInspector
' Look for the mail in the drafts folder
objInsp.Close olSave
End Sub
I have no explanation why the mail is not sent when closing the inspector.
Option Explicit
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
Dim objInsp As Inspector
On Error GoTo ErrorHandler_Application_ItemSend
' Do something erroneous
Err.Raise 1
Exit Sub
ErrorHandler_Application_ItemSend:
Cancel = True
MsgBox "Error: " & Err.Description
Set objInsp = Item.GetInspector
' Look for the mail in the drafts folder
objInsp.Close olSave
End Sub
answered Nov 19 '18 at 22:36
nitonniton
5,52571942
5,52571942
Thanks for providing code. It is mind boggling, because suddenly the code seems to work fine again. I can't be sure but it may perhaps have nothing to do with the problem asked. I will have to wait and see if the problem re-surfaces.
– Barok
Nov 25 '18 at 5:23
add a comment |
Thanks for providing code. It is mind boggling, because suddenly the code seems to work fine again. I can't be sure but it may perhaps have nothing to do with the problem asked. I will have to wait and see if the problem re-surfaces.
– Barok
Nov 25 '18 at 5:23
Thanks for providing code. It is mind boggling, because suddenly the code seems to work fine again. I can't be sure but it may perhaps have nothing to do with the problem asked. I will have to wait and see if the problem re-surfaces.
– Barok
Nov 25 '18 at 5:23
Thanks for providing code. It is mind boggling, because suddenly the code seems to work fine again. I can't be sure but it may perhaps have nothing to do with the problem asked. I will have to wait and see if the problem re-surfaces.
– Barok
Nov 25 '18 at 5:23
add a comment |
You couldn’t use On Error GoTo to get error event, you could try to use If statement. For example:
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
On Error Resume Next
If Not Left(LCase(Item.Subject), 3) = "re:" And Not Left(LCase(Item.Subject), 3) = "fw:" Then
prompt$ = "You sending this from " & Item.SendUsingAccount & ". Are you sure you want to send it?"
If MsgBox(prompt$, vbYesNo + vbQuestion + vbMsgBoxSetForeground, "Check Sending Account") = vbNo Then
Cancel = True
End If
End If
End Sub
For more information, please refer to this link:
Warn Before Sending Messages to the Wrong Email Address
Application.ItemSend Event (Outlook)
add a comment |
You couldn’t use On Error GoTo to get error event, you could try to use If statement. For example:
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
On Error Resume Next
If Not Left(LCase(Item.Subject), 3) = "re:" And Not Left(LCase(Item.Subject), 3) = "fw:" Then
prompt$ = "You sending this from " & Item.SendUsingAccount & ". Are you sure you want to send it?"
If MsgBox(prompt$, vbYesNo + vbQuestion + vbMsgBoxSetForeground, "Check Sending Account") = vbNo Then
Cancel = True
End If
End If
End Sub
For more information, please refer to this link:
Warn Before Sending Messages to the Wrong Email Address
Application.ItemSend Event (Outlook)
add a comment |
You couldn’t use On Error GoTo to get error event, you could try to use If statement. For example:
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
On Error Resume Next
If Not Left(LCase(Item.Subject), 3) = "re:" And Not Left(LCase(Item.Subject), 3) = "fw:" Then
prompt$ = "You sending this from " & Item.SendUsingAccount & ". Are you sure you want to send it?"
If MsgBox(prompt$, vbYesNo + vbQuestion + vbMsgBoxSetForeground, "Check Sending Account") = vbNo Then
Cancel = True
End If
End If
End Sub
For more information, please refer to this link:
Warn Before Sending Messages to the Wrong Email Address
Application.ItemSend Event (Outlook)
You couldn’t use On Error GoTo to get error event, you could try to use If statement. For example:
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
On Error Resume Next
If Not Left(LCase(Item.Subject), 3) = "re:" And Not Left(LCase(Item.Subject), 3) = "fw:" Then
prompt$ = "You sending this from " & Item.SendUsingAccount & ". Are you sure you want to send it?"
If MsgBox(prompt$, vbYesNo + vbQuestion + vbMsgBoxSetForeground, "Check Sending Account") = vbNo Then
Cancel = True
End If
End If
End Sub
For more information, please refer to this link:
Warn Before Sending Messages to the Wrong Email Address
Application.ItemSend Event (Outlook)
answered Nov 14 '18 at 8:21
Alina LiAlina Li
633125
633125
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53291978%2fstop-outlook-vba-from-sending-mail-within-itemsend-when-an-error-event-has-occ%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Put a breakpoint on both Cancel = True lines, and run your code. Does the code reach either?
– Excelosaurus
Nov 14 '18 at 2:59
1
If all this code is in ThisOutlookSession would you edit the question to remove unneeded complications, by removing the first four lines and changing to
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
. Would you put in anErr.Raise
so potential respondents do not introduce mistakes trying to create an error.– niton
Nov 14 '18 at 14:56
nitro@ thanks for the tip.
– Barok
Nov 25 '18 at 5:26