How to call a macro on send button click?
outlook, vba
Solution
You need to use `Application_ItemSend event` which fires when you press send button. You create this event in `ThisOutlookSession module`. Your event sub could look like this:
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
On Error GoTo ErrorHandler
With Item 'Item is your e-mail
'this way you could change your subject just before you send message
.Subject = "test subject"
'here some changes regarding body of the message
.Body = .Body & " Additional text at the end or " & _
"ComboBoxValue: " '& ... reference to combobox value here
End With
Exit Sub
ErrorHandler:
MsgBox "Error!"
End Sub
Be careful- this will make action to each of your e-mail therefore you should add some `if statements` to make it works only with some of your e-mails.
Problem
I have a macro that takes the description of an email that I've selected and populates the "message" field of a form that is created from a template: ``` sText = olItem.Body Set msg = Application.CreateItemFromTemplate("C:\template.oft") With msg .Subject = "Test" .To = "user@user.com" 'Set body format to HTML .BodyFormat = Outlook.OlBodyFormat.olFormatHTML .HTMLBody = "<HTML><BODY>EmailDesc: " + sText + "</BODY></HTML>" .Display End With ``` In this template, I have more fields to fill, like combobox.. for example. I would like to know, how do I get the value of this combo when I click on the send button, and concatenate it to the contents of the email before sending? Generating something like this: ``` EmailDesc: TEST SEND EMAIL BLA BLA BLA.. ComboboxValue: Item1 ``` Thx