Dodawanie statusu wiadomości lub notatki do e-maila w Outlook’u
by vbatools on Jun.21, 2010, under Outlook, Porady
Wiele z osób posiada konieczność opisania lub oznaczenia wiadomości przychodzących. Weryfikacja na podstawie historii odpowiedzi na wiadomość jest uciążliwa, zwłaszcza że przesyłana treść może być wielowątkowa i zwykle umieszczona jest w folderze “Poczta wysłana”, a nie w miejscu poczty przychodzącej (często prze kserowana do podfolderu), gdzie chcielibyśmy je oznaczać.
Status taki powinien być widoczny, z możliwością sortowania, w przypadku notatki również i wyszukania informacji po jej treści.
Poniżej przedstawiam dwa warianty makra, które pozwolą na ustawianie statusu na wiadomościach pocztowych (wariant Status) albo na szybkie dodawanie notatki, tj. dodatkowego dowolnego tekstu do wiadomości (wariant Notatka).
Aby osadzić procedurę “Dodaj_status_notatke” pod przyciskiem w menu MS Outlook, polecam uwadze artykuł.
Status
Poniższe makro pozwala na dodawanie pola status do wiadomości pocztowych.
Status posiada dwa rodzaje wypełnienia pola Tak, Nie lub brak wypełnienia. Wywołane jest komunikatem z trzema przyciskami. Przycisk Anuluj usuwa wcześniej wybrany wpis.
Option Explicit 'MVP OShon from VBATools.pl Dim oApp As New Outlook.Application Dim oExp As Outlook.Explorer Dim oSel As Outlook.Selection Dim oItem As Object, i& Dim strMessageClass As String Dim oMailItem As Outlook.MailItem Dim oProperty As UserProperty Dim Tematy$ Sub Dodaj_status_notatke() Set oExp = oApp.ActiveExplorer Set oSel = oExp.Selection If oSel.Count > 1 Then For i = 1 To oSel.Count Set oItem = oSel.item(i) AddNoteInfo oItem Next i Else Set oItem = oSel.item("Status") AddNoteInfo oItem End If Set oExp = Nothing Set oSel = Nothing Set oItem = Nothing End Sub Private Sub AddNoteInfo(oItem As Object) strMessageClass = oItem.MessageClass If (strMessageClass = "IPM.Note") Then Set oMailItem = oItem Tematy = oMailItem.Subject On Error Resume Next oProperty = oItem.UserProperties("Status") On Error GoTo 0 If oProperty Is Nothing Then _ oItem = oMailItem.UserProperties.Add("Status", olText) Dim Pytanie, Odpowiedz Pytanie = MsgBox("Wstaw wartość do prowadzenia" & vbCr & vbCr _ & "Tak / Nie / Anuluj" & vbCr _ & "Gdzie ''Anuluj'' usunie wpis statusu.", _ vbYesNoCancel + vbInformation + vbDefaultButton1, _ "Status | VBATools.pl") With oMailItem.UserProperties.item("Status") If Pytanie = vbYes Then .value = "Tak" ElseIf Pytanie = vbNo Then .value = "Nie" Else .Delete End If End With oMailItem.Subject = Tematy 'procedura gubi temat wiec nadpisujemy oItem.Save Set oMailItem = Nothing End If End Sub
Notatka
To pole pozwala na dodanie dowolnej notatki do wiadomości pocztowej. Notatka wywołana jest przez komunikat umożliwiający wpisanie w okno treści uwagi. Podobnie jak powyższym makro, przycisk Anuluj usuwa wcześniej dodany wpis.
Aby makro działało poprawnie, należy skopiować całe makro podane powyżej i zastąpić procedurę AddNoteInfo na następujący kod:
Private Sub AddNoteInfo(oItem As Object) strMessageClass = oItem.MessageClass If (strMessageClass = "IPM.Note") Then Set oMailItem = oItem Tematy = oMailItem.Subject On Error Resume Next oProperty = oItem.UserProperties("Notatka") On Error GoTo 0 If oProperty Is Nothing Then _ oItem = oMailItem.UserProperties.Add("Notatka", olText) Dim Notatka_info As String Notatka_info = InputBox("Wpisz tekst notatki w poniższe pole:", "Umieszczenie opisu w kolumnie notatka") If Len(Notatka_info) > 0 Then oMailItem.UserProperties.item("Notatka").value = Notatka_info Else oMailItem.UserProperties.item("Notatka").Delete End If oMailItem.Subject = Tematy 'procedura gubi temat wiec nadpisujemy oItem.Save Set oMailItem = Nothing End If End Sub
Jak dokonać zmian w widoku?
Każde pole jest zdefiniowane, utworzone poprzez nadanie obiektu „Status” lub „Notatka”. Pole takie można wyciągnąć osadzając w widoku folderu wiadomości. Wyciągnięcie tego pola odbywa się w następujący sposób:
- Wciskamy prawy klawisz myszy na kolumnie Wiadomości/Wybór pól.
- Wybieramy Pola zdefiniowane przez użytkownika.
- Przeciągamy pole Status/Notatka np. za tematem maila.
Rys 1. Sposób przeciągnięcia kolumny z notatką/statusem
Operacja ta się nie uda, w przypadku kiedy nie dokonaliśmy żadnego wprowadzenia Notatek do wiadomości pocztowej w danym folderze. Notatki o długiej szerokości pokazują się w widoku foldera, w dymku (po najechaniu kursorem myszy). Aby otrzymać podobny obiekt/kolumnę, należy w każdym z folderów użyć przynajmniej 1 raz procedury utworzenia pola powyższym makrem.
Dla dwóch pól można wykorzystać formę lub zdublowane polecenie podania wpisu. Przykład zgodnie z tym linkiem.
Przedstawiony w tym artykule sposób działa tylko na kontach POP3
(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.