VBATools

Dodawanie statusu wiadomości lub notatki do e-maila w Outlook’u

by 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:

  1. Wciskamy prawy klawisz myszy na kolumnie Wiadomości/Wybór pól.
  2. Wybieramy Pola zdefiniowane przez użytkownika.
  3. 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.
:, , ,

Leave a Reply