Wybór konta przy nadaniu wiadomości w Outlooku
by vbatools on Oct.08, 2010, under Outlook, Porady
Ze względu na powszechną możliwość korzystania z darmowych kont pocztowych, wiele osób decyduje się na utrzymywanie i synchronizacje wiadomości z wielu skrzynek pocztowych. W Outlooku 2007/10 mamy możliwość wyboru konta przed wysłaniem wiadomości (rys1).
Rys 1. Wybór konta podczas edycji wiadomości pocztowej.
Niestety często zdarza się iż w czasie pracy z aplikacją zapominamy ustawić odpowiednie konto dla nadawanej wiadomości i orientujemy się o błędzie już po fakcie. Można zapobiec temu opóźniając nadanie wiadomości stosowną regułą (proces opisany w innym artykule) i wy edytować ją zanim zostanie wysłana.
Poniższa procedura przedstawia alternatywny sposób odpytujący użytkownika co do wyboru konta.
Rys 2. Wybór konta podczas po wysłaniu wiadomości.
W przypadku kiedy użytkownik wpisze w przedstawione pow okno (rys2) wartość błędną, wiadomość nie zostanie wysłana czym zostanie poinformowany stosownym komunikatem.
Poniżej przestawiony kod realizuje opisane założenie:
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
'MVP OShon from VBATools.pl
If Item.Class = 43 Then
Dim objMailItem As MailItem
Set objMailItem = Item
Dim olNS As Outlook.NameSpace
Set olNS = Application.GetNamespace("MAPI")
Dim wybor$, lista$, x&
For x = 1 To olNS.Accounts.Count
lista = lista & x & " -" & olNS.Accounts.Item(x).DisplayName & vbCr
Next x
wybor = InputBox("Wybierz numer konta z poniższej listy:" & vbCr & lista, _
"Nadawanie z wybranego konta VBATools.pl", 1)
If Len(wybor) = 0 Then Cancel = True
With objMailItem
If IsNumeric(wybor) = True Then
if wybor > x then goto blad
.SendUsingAccount = olNS.Accounts.Item(wybor)
.Save
Else
blad:
Cancel = True
MsgBox "Nie wybrano prawidłowo numeru konta", vbExclamation, _
"Nadawanie z wybranego konta VBATools.pl"
End If
End With
Set objMailItem = Nothing
Set olNS = Nothing
End If
End Sub
Powyżej przedstawioną procedurę umieszczamy w klasie „ThisOutlookSesion”.
Może być wymagany zapis procedury oraz reset aplikacji.
(c) Shon Oskar – www.VBATools.pl
Wszelkie prawa zastrzeżone. Żadna część ani całość tego artykułu nie może być powielana ani publikowana bez zgody autora.