W programie Outlook 2013 używam paska bocznego „Lista zadań”:
- Od Poczta ekran, wybierz Widok karta wstążki.
- w Układ grupa wstążek, kliknij Pasek zadań do wykonania rozwijana i wybierz Zadania .
Elementy poczty, które „zaznaczam” są widoczne na tej liście.
Byłbym wdzięczny, gdyby ktoś mógł dostarczyć kod VBA, aby otworzyć wybrane elementy zadania zawierający folder .
Próbowałem następującego kodu ( źródło ), ale niestety ma błąd.
Public Sub GetItemsFolderPath()
Dim obj As Object
Dim F As Outlook.MAPIFolder
Dim Msg$
Set obj = Application.ActiveWindow
If TypeOf obj Is Outlook.Inspector Then
Set obj = obj.CurrentItem
Else
Set obj = obj.Selection(1)
End If
Set F = obj.Parent ' <---------- DEBUG INDICATES THE ERROR IS HERE
Msg = "The path is: " & F.FolderPath & vbCrLf
Msg = Msg & "Switch to the folder?"
If MsgBox(Msg, vbYesNo) = vbYes Then
Set Application.ActiveExplorer.CurrentFolder = F
End If
End Sub
EDYTOWAĆ
Błąd występuje tylko wtedy, gdy przeglądasz inny folder najwyższego poziomu niż ten, w którym znajduje się oznaczony element, podczas próby uruchomienia makra.
- Na przykład, jeśli aktualnie eksplorujesz gdzieś na swoim koncie Exchange, a oznaczony element poczty znajduje się w jakimś podfolderze na twoim koncie Exchange, makro będzie działać dobrze.
- Podobnie, jeśli aktualnie eksplorujesz gdzieś w pliku danych PST, a oznaczony element poczty znajduje się w jakimś podfolderze w tym pliku danych PST, makro będzie działać dobrze.
- Ale jeśli aktualnie eksplorujesz jeden plik danych PST, a twój flagowany element NIE znajduje się w tym PST, ale gdzieś indziej, jak inne PST lub konto Exchange, to makro będzie miało błąd.