
Eliminacja wielokrotnych adresów w wiadomości
Wyobraźcie sobie wiadomość, z wypełnionymi polami email odbiorców. Zdarzyć się może, że w wiadomości będziemy mieć powielone adresy email, czego chcemy uniknąć, ponieważ pozostawienie ich będzie skutkowało niepożądanym nadaniem wiadomości do tego samego adresata kilkakrotnie.
Rys 1. Przykładowa wiadomość z wielokrotnym osadzeniem adresów email
Eliminacje duplikatów możemy przeprowadzić po przez import ich do Excela, podział na osobne cele, transpozycje i filtrację z usunięciem duplikatów. Uff - trochę męczące prawda?
Jest na to recepta w postaci kodu VBA.
Poniżej załączam kod, jaki można zastosować np. na otwartej/aktywnej wiadomości email po osadzeniu go w środowisku developerskim Outlooka:
Sub eliminuj() Dim oMail As MailItem: Set oMail = ActiveInspector.CurrentItem Call eliminacja_duplikatow(oMail) End Sub Private Sub eliminacja_duplikatow(oMail As MailItem) 'MVP OShon from VBATools.pl With oMail.Recipients Dim cLista_To As New Collection, cLista_CC As New Collection, cLista_BCC As New Collection Dim y&, oRecip As Recipient, ile&: ile = .Count If ile > 1 Then For y = ile To 1 Step -1 On Error Resume Next Select Case .Item(y).Type Case 1: cLista_To.Add .Item(y), CStr(.Item(y)) Case 2: cLista_CC.Add .Item(y), CStr(.Item(y)) Case 3: cLista_BCC.Add .Item(y), CStr(.Item(y)) End Select .Remove (y) On Error GoTo 0 Next y For y = 1 To cLista_To.Count Set oRecip = .Add(cLista_To.Item(y)) oRecip.Type = olTo Next y For y = 1 To cLista_CC.Count Set oRecip = .Add(cLista_CC.Item(y)) oRecip.Type = olCC Next y For y = 1 To cLista_BCC.Count Set oRecip = .Add(cLista_BCC.Item(y)) oRecip.Type = olBCC Next y oRecip.Resolve End If End With Set oRecip = Nothing End Sub
Realizację kodu, można przeprowadzić na trzy sposoby:
- przez uruchamianie przycisku wstęgi, osadzonej w nowej wiadomości,
- jako skrót klawiaturowy [Alt+F8] i wybór z menu procedur,
- lub uruchamiać automatycznie podczas wysyłania wiadomości wywołując ją w procedurze zdarzeniowej Application_ItemSend stosując jako reguła.
Efekt odfiltrowania widzimy poniżej:
Rys 2. Wiadomość po uruchomieniu pow. procedury
Teraz, nie będziemy musieli się tłumaczyć dlaczego poczta została dostarczona dwa razy i czym różni się jej treść.
MVP Shon Oskar – VBATools.pl
Jeśli masz pytania dot. tego artykułu zapraszam na Forum
Skonfiguruj swój pakiet dodatków do Excela, Worda, PowerPointa i Outlooka
© Wszelkie prawa zastrzeżone. Żadna część ani całość tego artykułu nie może być powielana ani publikowana bez zgody autora.