Detecting when the SEND button is pressed










1















As far as I know, there are two ways to send a mailitem in Outlook:



  1. By physically pressing the SEND button in the Inspector window, or


  2. Executing MailItem.Send through a macro command


How can I distinguish these using Outlook VBA?



Specifically, how can I detect when the SEND button is pressed?



Can ItemSend() be modified to capture only this event, and not the other?










share|improve this question
























  • Maybe add some tracking of mousse events, so you know when the last time the mouse was clicked. (Will not work when using keyboard)

    – Mr Zach
    Nov 16 '18 at 0:52















1















As far as I know, there are two ways to send a mailitem in Outlook:



  1. By physically pressing the SEND button in the Inspector window, or


  2. Executing MailItem.Send through a macro command


How can I distinguish these using Outlook VBA?



Specifically, how can I detect when the SEND button is pressed?



Can ItemSend() be modified to capture only this event, and not the other?










share|improve this question
























  • Maybe add some tracking of mousse events, so you know when the last time the mouse was clicked. (Will not work when using keyboard)

    – Mr Zach
    Nov 16 '18 at 0:52













1












1








1








As far as I know, there are two ways to send a mailitem in Outlook:



  1. By physically pressing the SEND button in the Inspector window, or


  2. Executing MailItem.Send through a macro command


How can I distinguish these using Outlook VBA?



Specifically, how can I detect when the SEND button is pressed?



Can ItemSend() be modified to capture only this event, and not the other?










share|improve this question
















As far as I know, there are two ways to send a mailitem in Outlook:



  1. By physically pressing the SEND button in the Inspector window, or


  2. Executing MailItem.Send through a macro command


How can I distinguish these using Outlook VBA?



Specifically, how can I detect when the SEND button is pressed?



Can ItemSend() be modified to capture only this event, and not the other?







vba button outlook send






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 16 '18 at 1:45









K.Dᴀᴠɪs

7,320112440




7,320112440










asked Nov 16 '18 at 0:42









BarokBarok

508




508












  • Maybe add some tracking of mousse events, so you know when the last time the mouse was clicked. (Will not work when using keyboard)

    – Mr Zach
    Nov 16 '18 at 0:52

















  • Maybe add some tracking of mousse events, so you know when the last time the mouse was clicked. (Will not work when using keyboard)

    – Mr Zach
    Nov 16 '18 at 0:52
















Maybe add some tracking of mousse events, so you know when the last time the mouse was clicked. (Will not work when using keyboard)

– Mr Zach
Nov 16 '18 at 0:52





Maybe add some tracking of mousse events, so you know when the last time the mouse was clicked. (Will not work when using keyboard)

– Mr Zach
Nov 16 '18 at 0:52












1 Answer
1






active

oldest

votes


















1














I am not entirely sure if there is a way of detecting the method in which the item was sent or not - however, there is still at least a workaround that will give you the same effect. This will require that you create a Boolean variable at the top of your module, in this case we are using isVBA.



Inside the event handler, you will add an If Not isVBA statement - this will be True whenever you manually send an item by physically pressing your button.



However, in the routine that uses the MailItem.Send method, you will add isVBA = True anytime before the send occurs - which will tell your event handler that this was not a 'manual' send.



Here's a visual representation:



Private isVBA As Boolean

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)

If Not isVBA Then

Rem: Do what you need to do with a MANUAL send

End If

End Sub

Sub myVBASendMethod()

' Setting this to true will tell the event that you're using MailItem.Send
isVBA = True

' Event Triggered using MailItem.Send

' Reset this back to false
isVBA = False

End Sub





share|improve this answer

























  • @K. DAVIS I think your solution will do well for the problem at hand. Thank you.

    – Barok
    Nov 16 '18 at 5:52










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
);



);













draft saved

draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53329836%2fdetecting-when-the-send-button-is-pressed%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









1














I am not entirely sure if there is a way of detecting the method in which the item was sent or not - however, there is still at least a workaround that will give you the same effect. This will require that you create a Boolean variable at the top of your module, in this case we are using isVBA.



Inside the event handler, you will add an If Not isVBA statement - this will be True whenever you manually send an item by physically pressing your button.



However, in the routine that uses the MailItem.Send method, you will add isVBA = True anytime before the send occurs - which will tell your event handler that this was not a 'manual' send.



Here's a visual representation:



Private isVBA As Boolean

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)

If Not isVBA Then

Rem: Do what you need to do with a MANUAL send

End If

End Sub

Sub myVBASendMethod()

' Setting this to true will tell the event that you're using MailItem.Send
isVBA = True

' Event Triggered using MailItem.Send

' Reset this back to false
isVBA = False

End Sub





share|improve this answer

























  • @K. DAVIS I think your solution will do well for the problem at hand. Thank you.

    – Barok
    Nov 16 '18 at 5:52















1














I am not entirely sure if there is a way of detecting the method in which the item was sent or not - however, there is still at least a workaround that will give you the same effect. This will require that you create a Boolean variable at the top of your module, in this case we are using isVBA.



Inside the event handler, you will add an If Not isVBA statement - this will be True whenever you manually send an item by physically pressing your button.



However, in the routine that uses the MailItem.Send method, you will add isVBA = True anytime before the send occurs - which will tell your event handler that this was not a 'manual' send.



Here's a visual representation:



Private isVBA As Boolean

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)

If Not isVBA Then

Rem: Do what you need to do with a MANUAL send

End If

End Sub

Sub myVBASendMethod()

' Setting this to true will tell the event that you're using MailItem.Send
isVBA = True

' Event Triggered using MailItem.Send

' Reset this back to false
isVBA = False

End Sub





share|improve this answer

























  • @K. DAVIS I think your solution will do well for the problem at hand. Thank you.

    – Barok
    Nov 16 '18 at 5:52













1












1








1







I am not entirely sure if there is a way of detecting the method in which the item was sent or not - however, there is still at least a workaround that will give you the same effect. This will require that you create a Boolean variable at the top of your module, in this case we are using isVBA.



Inside the event handler, you will add an If Not isVBA statement - this will be True whenever you manually send an item by physically pressing your button.



However, in the routine that uses the MailItem.Send method, you will add isVBA = True anytime before the send occurs - which will tell your event handler that this was not a 'manual' send.



Here's a visual representation:



Private isVBA As Boolean

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)

If Not isVBA Then

Rem: Do what you need to do with a MANUAL send

End If

End Sub

Sub myVBASendMethod()

' Setting this to true will tell the event that you're using MailItem.Send
isVBA = True

' Event Triggered using MailItem.Send

' Reset this back to false
isVBA = False

End Sub





share|improve this answer















I am not entirely sure if there is a way of detecting the method in which the item was sent or not - however, there is still at least a workaround that will give you the same effect. This will require that you create a Boolean variable at the top of your module, in this case we are using isVBA.



Inside the event handler, you will add an If Not isVBA statement - this will be True whenever you manually send an item by physically pressing your button.



However, in the routine that uses the MailItem.Send method, you will add isVBA = True anytime before the send occurs - which will tell your event handler that this was not a 'manual' send.



Here's a visual representation:



Private isVBA As Boolean

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)

If Not isVBA Then

Rem: Do what you need to do with a MANUAL send

End If

End Sub

Sub myVBASendMethod()

' Setting this to true will tell the event that you're using MailItem.Send
isVBA = True

' Event Triggered using MailItem.Send

' Reset this back to false
isVBA = False

End Sub






share|improve this answer














share|improve this answer



share|improve this answer








edited Nov 16 '18 at 1:48

























answered Nov 16 '18 at 1:42









K.DᴀᴠɪsK.Dᴀᴠɪs

7,320112440




7,320112440












  • @K. DAVIS I think your solution will do well for the problem at hand. Thank you.

    – Barok
    Nov 16 '18 at 5:52

















  • @K. DAVIS I think your solution will do well for the problem at hand. Thank you.

    – Barok
    Nov 16 '18 at 5:52
















@K. DAVIS I think your solution will do well for the problem at hand. Thank you.

– Barok
Nov 16 '18 at 5:52





@K. DAVIS I think your solution will do well for the problem at hand. Thank you.

– Barok
Nov 16 '18 at 5:52



















draft saved

draft discarded
















































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.




draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53329836%2fdetecting-when-the-send-button-is-pressed%23new-answer', 'question_page');

);

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







Popular posts from this blog

Top Tejano songwriter Luis Silva dead of heart attack at 64

ReactJS Fetched API data displays live - need Data displayed static

Evgeni Malkin