Microsoft Outlook troubleshooting
Reguły i skrypty

Reguły i skrypty

OShon
autor OShon 2010-12-10 16:02:00 w Makra
tagi: automatyzacja, Outlook, reguła, skrypt, tworzenie
Jednym z ciekawych rozwiązań automatyzacji Outlooka jest tworzenie reguł. W większości wykorzystywane są one do przenoszenia wiadomości z jednego folderu do innego, np. z folderu „Skrzynka odbiorcza”. 
 
Krokiem dalej będzie przygotowanie takiej reguły, która pozwoli przekazać wiadomość do innej osoby (nieokreślonej w wiadomości), pobrania danych z jej treści i zapisanie np. do pliku zewnętrznego (np. tworzenie logu wiadomości konkretnych odbiorców lub exportu ważnych elementów z jej treści) lub transformacji wiadomości na inny standard.
 
Poniżej przedstawione procedury, umieszczone w module developera Outlooka (Alt+F11) automatycznie pojawią się na liście skryptów, które to możemy podpiąć do przygotowanych reguł. 
 
Przykład 1.
Jeśli w temacie przychodzącej wiadomości pojawi się słowo „Raport” to deleguj sprawę: 
Sub Delegowac_raport(Item As MailItem)
    If InStr(1, Item.Subject, "Raport") > 0 Then
        Dim oMailItem As MailItem
        oMailItem = Application.CreateItem(olMailItem)
        With oMailItem
            .To = "Jasio.Kowalski@vbatools.pl"
            .Subject = "Wykonaj raport miesięczny"
            .Body = "Raport dedykowany dla: " & Item.SenderName
            .Send()
        End With
        oMailItem = Nothing
        End
Przykład 2.
Aby pobrać dane z wiadomości i przekazać ją do zmiennej stosujemy taką konstrukcję (zakładając, iż w treści otrzymanej wiadomości po słowie „Email:” jest podany adres przyszłego odbiorcy a następnym słowem w szablonie jest „Phone:” 
Sub Przeslij_dalej_maila(Item As MailItem)
    Dim dm&, dl&, Mail$
    dm = InStr(1, Item.Body, "Email: ")
    If dm > 0 Then
        dl = InStr(1, Item.Body, "Phone: ")
        Mail = Split(Mid$(Item.Body, dm, dl - dm))(1)
        If Mail Like "*@*.*" Then Call make_massage(Mail)
    End If
End Sub

Sub make_massage(ByVal adresat$)
    Dim oMailItem As MailItem
    oMailItem = CreateItem(olMailItem)
    With oMailItem
        .To = adresat
        .Subject = "Twój temat"
        .Display() 'aby wysłać zmień na .Send
    End With
    oMailItem = Nothing
End Sub
Przykład 3.
Do przesyłania wiadomości (np. dla wymienionej osoby w regule), która sobie życzy otrzymywać wiadomości w teście niesformatowanym możemy zastosować takie rozwiązanie:
Sub Zamien_na_text(MyMail As MailItem)
    Dim MailID$, oMail As MailItem

    MailID = MyMail.EntryID
    oMail = Session.GetItemFromID(MailID)
    oMail.BodyFormat = olFormatPlain
    oMail.Save()
    oMail = Nothing
End Sub
Samo wiązanie procedury w regule odbywa się następująco:
 
Przykład dla poczty przychodzącej 
Rys.1. Przykład reguły dla poczty przychodzącej
 
Dla każdej poczty, bez podania konkretnego adresata wiadomości
 Rys.2. Definiowanie warunków reguły
 
Podepnij skrypt (lista dostępnych procedur)
 Rys.3. Podpięcie skryptu (lista dostępnych procedur)
 
Reszta postępowania zgodnie z kreatorem reguł.
 
Osadzenie procedur VBA znajdziecie w artykule: 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.
wyświetleń: 10121