
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 przekserowana 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
Dim oApp As New Outlook.Application
Dim oExp As Outlook.Explorer
Dim oSel As Outlook.Selection
Dim oItem As Object
Dim i As Long
Dim strMessageClass As String
Dim oMailItem As Outlook.MailItem
Dim oProperty As UserProperty
Dim Tematy As String
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(1)
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śc do prowadzenia" & vbCr & vbCr _
& "Tak / Nie / Anuluj" & vbCr _
& "Gdzie ''Anuluj'' usunie wpis statusu.", _
vbYesNoCancel + vbInformation + vbDefaultButton1, _
"Status")
If Pytanie = vbYes Then
oMailItem.UserProperties.item(1).value = "Tak"
ElseIf Pytanie = vbNo Then
oMailItem.UserProperties.item(1).value = "Nie"
Else
oMailItem.UserProperties.item(1).Delete
End If
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ęują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(1).value = Notatka_info
Else
oMailItem.UserProperties.item(1).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.
Operacja ta sie 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.
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.