Outlook 2010 VBA editor opens when sending an email

Dilshad

New Member
Outlook version
Outlook 2010 64 bit
Email Account
Exchange Server
Hi,

I have written a code to check if I have my manager in to or cc. If not then it gives a popup. It is working fine.
but the issue is when I send an email, VBA editor opens and points at If statement. Please see screen shot and code below.

Screen Shot:
upload_2015-11-13_13-7-57.png


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

Dim Recipients As Outlook.Recipients
Dim recip As Outlook.Recipient
Dim i As Integer
Dim prompt As String
Dim Flag As Boolean
Dim RecCount

On Error Resume Next
' use lower case for the address
' LCase converts all addresses in the To field to lower case
Flag = False

Set RecCount = Item.Recipients

Set Recipients = Item.Recipients
For i = Recipients.Count To 1 Step -1
Set recip = Recipients.Item(i)

If InStr(LCase(recip), "Manager") Then
Flag = True
ElseIf InStr(LCase(recip), "Team Lead1") Then
Flag = True
ElseIf InStr(LCase(recip), "Team Lead2") Then
Flag = True
ElseIf InStr(LCase(recip), "Team Lead3") Then
Flag = True
End If

Next i

If Flag = False Then
prompt$ = "You are not including your Manager . Are you sure you want to send it?"

If MsgBox(prompt$, vbYesNo + vbQuestion + vbMsgBoxSetForeground, "Check Address") = vbNo Then
Cancel = True
End If
' Else
' prompt$ = "Good Work . Are you sure you want to send it?"
'
' If MsgBox(prompt$, vbYesNo + vbQuestion + vbMsgBoxSetForeground, "Check Address") = vbNo Then
' Cancel = True
' End If

End If


End Sub
"

I have two questions
1) How can I stop VBA editor opening automatically and pointing at if?
2) Can I pass this code to my team, so that they all can use it. What is the best possible way to do this, where team members can't change the code?

Please, help me with this. Looking forward for your reply.
Thanks in advance.
 

Diane Poremsky

Senior Member
Outlook version
Outlook 2016 32 bit
Email Account
Office 365 Exchange
Once you fix whatever is wrong, it will stop doing that :) but adding on error resume next right before that line should stop it too.

I would add a debug.print recip there instead and the next time it comes up, show the immediate window and see what value was assigned to recip that is causing it to trip.

As for sharing it, you would need to compile it as an addin if you wanted to prevent people from changing it.

oh, and one problem which can cause it to fail - this tells it to convert recip to lower case and compare it with a proper word - use all lower case words in the match side.
If InStr(LCase(recip), "Manager") Then
 
Last edited:

Dilshad

New Member
Outlook version
Outlook 2010 64 bit
Email Account
Exchange Server
Thanks a lot for your reply Diane Poremsky.

It seems there was no issue with the code, once I restarted my system, code is working as expected and it is not opening VBA editor. :)

Monday, I will share it with my colleagues. Will try the process you mentioned.

Once again, thanks for your help.
 

Top