Microsoft Outlook troubleshooting
Przenoszenie i budowa niestandardowych reguł Outlooka

Przenoszenie i budowa niestandardowych reguł Outlooka

OShon
autor OShon 2010-05-24 16:47:00 w Makra
tagi: administracja, makro, reguła

1. Przenoszenie reguł pomiędzy komputerami

Podczas przenoszenia repozytorium danych Outlooka (pliku PST) na inną jednostkę w nowej instalacji programu lub konieczność zastosowania wcześniej utworzonych reguł na komputerze w którym stosuje się pozostawianie wiadomości na serwerze (Dom – Praca) przydatne jest utworzenie tożsamych reguł. Czynność ta może być czasochłonna i może być problemem gdy przepisane reguły nie będą utworzone podobnie jak w systemie pierwotnym.

Aby temu zapobiec możemy skorzystać z Kreatora importu reguł. W Menu/Narzędzia/Reguły i alerty jest przycisk Opcje. Po jego uruchomieniu pojawi się ekran z dwoma funkcjami do wyboru: Export i import reguł. (Rys. 1.)

 
Rys. 1. Zapis i odczyt reguł zapisanych w formacie „Office Data File (.rwz)”

Tak zapisane reguły można bez przeszkód przenieść i zastosować na innej maszynie.

2. Makro, alternatywna metoda na tworzenie reguł.

Utworzenie reguły jest realizowane przez kreatora reguł, jednakże pomimo jego obszernych możliwości, zdarza się że brak jest reguły, która zaspokoiła by nasze oczekiwania. Outlook dzięki wbudowanemu edytorowi procedur VBA umożliwia zaprogramowanie czynności i podpięcie do procesu maili wychodzących.

Poniżej przedstawione procedury opisują „Wysłanie ukrytej kopii wiadomości na inny adres” oraz „Ostrzeżenie przed wysłaniem wiadomości bez tematu, z możliwością anulowania jej wysłania”.

Procedurę „Application_ItemSend” umieścić należy w klasie ThisOutlookSession i ponownie uruchom Outlook. Bez restartu instrukcje te nie będą realizowane.

Option Explicit
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    Dim oRecip As Recipient
    Set oRecip = Item.Recipients.Add("adres@domena.pl")
        oRecip.Type = olBCC
        oRecip.Resolve
    Set oRecip = Nothing
End Sub
'lub
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
Dim strSubject$, Prompt$
strSubject = Item.Subject
    If Len(Trim(strSubject)) = 0 Then
    Prompt = "Temat jest pusty. Czy chcessz wysłać email?"
        If MsgBox(Prompt, vbYesNo + vbQuestion + vbMsgBoxSetForeground, "Sprawdzenie przed wysłaniem") = vbNo Then
            Cancel = True
        End If
    End If
End Sub

W przypadku kiedy rozbudowujemy nasze reguły poczty wychodzącej, należy umieścić procedurę „Application_ItemSend” tylko jeden raz, a odwołać się w niej do reguł umieszczonych w osobnych procedurach. Np.:

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    Call Ukryta_Kopia
    Call Bez_tematu(Item, Cancel) 'niektóre procedury należy przerobić na funkcje
End Sub

Na forum Outlook.pl możemy odszukać wiele przydatnych instrukcji  i procedur.

Jeżeli temat przekazywania poczty jaki jest w pow. przykładzie was zainteresował, a podane rozwiązanie nie jest wystarczające z uwagi na mozliwą manipulację danymi, polecam rozwiązanie w formie dodatku COM realizującego ten sam cel, ale z możliwością blokady zmian. Szczegułowy opis dostępny na tej stronie.

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.