
Wezwanie na spotkanie lub wydarzenie kalendarzowe
tagi: automatycznie, automatyczny, kalendarz, makro, MS outlook, outlook, spotkanie, wezwanie
Poniższy artykuł przedstawia kod, dzięki któremu użytkownik może utworzyć wezwanie na spotkanie dla określonych adresatów lub utworzyć wydarzenie kalendarzowe.
Różnica pomiędzy wezwaniem a wydarzeniem polega na umieszczeniu w pierwszym przypadku adresatów (przygotowanie wiadomości do wysłania, która osadzi się w kalendarzu odbiorcy). O ile przedstawiona funkcja nie będzie zawierała adresów email to utworzone zostanie wydarzenie gotowe do zapisania po akceptacji „Zapisz i zamknij” w kalendarzu inicjatora.
Poniższe ekrany pokazują przyporządkowanie adresatów, jako obserwatorów bądź też osoby, które są zobowiązane do stawienia się na spotkaniu:
Rys 1. Widok wezwania na spotkanie, które zawiera inicjatora (nadawcę) oraz trzy osoby towarzyszące.
Poniższy kod funkcji zawiera osobny parametr dla osób, które są zobligowane do odbycia spotkania, jak i osoby poinformowane, które mogą, ale nie muszą się na nim stawić. Takimi osobami są obserwatorzy m@m.com oraz k@m.com.
Sub Wywołanie_testowe() If OutlookZaproszenie_lub_wydarzenie(Temat:="Spotkanie z MrX", _ Poczatek:="2011-05-18 17:00", _ Dlugosc:=15, _ Miejsce:="Budynek 123", _ Adresat:="adres@vbatools.pl", _ Adresat_opc:="m@m.com, k@m.com", _ Tresc:="Spotkajmy się aby omówić sprawy") = False Then _ MsgBox "Brak możliwości wysłania wiadomości!", vbExclamation, "VBATools.pl" End Sub Function OutlookZaproszenie_lub_wydarzenie(Temat$, Poczatek As Date, Dlugosc&, Optional Miejsce$, _ Optional Adresat$, Optional Adresat_opc$, _ Optional Tresc$) As Boolean Dim oAppointment As Outlook.AppointmentItem Dim oOutlook As Outlook.Application Dim sAdresat() As String, sAdresat_opc() As String, x&, m&, h& On Error GoTo blad h = Dlugosc \ 60: m = Dlugosc Mod 60 Set oOutlook = New Outlook.Application Set oAppointment = Outlook.CreateItem(olAppointmentItem) With oAppointment .Subject = Temat .Start = Poczatek .End = Poczatek + CDate(CStr(h) & ":" & CStr(m) & ":00") .LOCATION = Miejsce .Body = Tresc If Len(Adresat) > 0 Or Len(Adresat_opc) > 0 Then .MeetingStatus = olMeeting Adresat = Replace(Adresat, ";", ",") sAdresat = Split(Adresat, ",") For x = 0 To UBound(sAdresat) If sAdresat(x) Like "*@*.*" Then .Recipients.Add(sAdresat(x)).Type = 1 End If Next Adresat_opc = Replace(Adresat_opc, ";", ",") sAdresat_opc = Split(Adresat_opc, ",") For x = 0 To UBound(sAdresat_opc) If sAdresat_opc(x) Like "*@*.*" Then .Recipients.Add(sAdresat_opc(x)).Type = 2 End If Next .Display '.Send Else .MeetingStatus = olNonMeeting .Display '.Save End If End With Set oAppointment = Nothing Set oOutlook = Nothing OutlookZaproszenie_lub_wydarzenie = True Exit Function blad: Debug.Print "VBATools.pl Error nr " & Err.Number & vbCr & Err.DESCRIPTION OutlookZaproszenie_lub_wydarzenie = False End Function
Niżej przedstawiona procedura tworzy na podstawie powyższej funkcji wydarzenie kalendarzowe.
Sub Wywołanie_testowe_wydarzenia() If OutlookZaproszenie_lub_wydarzenie(Temat:="Spotkanie z MrX", _ Poczatek:="2011-05-18 17:00", _ Dlugosc:=15, _ Miejsce:="Budynek 123", _ Tresc:="Spotkanie uzgodnienia spraw") = False Then _ MsgBox "Brak możliwości wysłania wiadomości!", vbExclamation, "VBATools.pl" End Sub
Rys 2. Widok wydarzenia kalendarzowego, gotowego do zapisania w kalendarzu.
Powyższe funkcje można wykorzystać przy budowie interfejsu lub wywoływać z przycisku menu.
W przypadku braku doświadczenia w instalacji makr polecam artykuł Instalacja i uruchamianie makr.
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.