VBATools

Wybór konta przy nadaniu wiadomości w Outlooku

by 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).

Wybor_konta

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.

Wybor_konta2

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.
:, , , ,

Leave a Reply