2017-06-29 2 views
-1

J'ai besoin de créer une règle dans Outlook 2016 qui apparaîtra avec un avertissement quand il y a plus de dix adresses email dans le champ "CC:".Comment baser une règle de perspectives sur le nombre d'adresses "CC:"?

J'ai trouvé ce résultat sur une recherche google rapide qui fait la même chose mais avec des adresses email dans le champ "To:". Je suis nouveau à VBA donc je ne suis pas sûr de la ligne que j'ai besoin de changer pour passer à regarder les emails CC plutôt que de.

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean) 
    Dim Recipients As Integer 
    Dim Start As Integer 
    Dim Last As Integer 
    Recipients = 1 
    Do 
     Start = Last + 1 
     Last = InStr(Start, Item.To, ";") 
     If Last = 0 Then Exit Do 
     Recipients = Recipients + 1 
    Loop 
    If (Recipients > 10) Then 
     Cancel = (MsgBox(Str(Recipients) & " recipients in To field.", vbOKCancel) = vbCancel) 
    End If 
End Sub 
+0

'item.cc' https://msdn.microsoft.com/VBA/Outlook-VBA/articles/mailitem-cc-property-outlook –

+1

également, 'Recipients = ubound (split (item.cc,"; "))' devrait faire le compte, donc pas besoin de code jusqu'à la FI –

Répondre

0

Je ne peux pas poster une fonction « commentaire », donc je suis annonce une « réponse »

le « split » retourne un tableau, qui est à base zéro (premier élément est à l'index 0)

donc ubound retourne un 9 pour un ensemble d'éléments 10

est le code ici, avec le changement proposé par Nathan_Sav,

plus un changement de code pour ajouter un à t il résulte de la fonction ubound

aussi ... la boîte de dialogue, qui apparaît quand il y a trop de destinataires, ne mentionne pas ce qui se passe lorsque vous appuyez sur l'une des touches

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

    Dim Recipients As Integer 

    Recipients = ubound(split(item.cc,";")) + 1 ' shift array index by one 

    If (Recipients > 10) Then 
     Cancel = (MsgBox(Str(Recipients) & " recipients in CC field.", vbOKCancel) = vbCancel) 
    End If 

End Sub