Outlook-VBA, aby otworzyć folder zawierający element wybranej listy zadań

1

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

enter image description here

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.
Lakey
źródło
Jak uruchomić to makro?
thims
Iść do Plik & gt; Opcje & gt; Dostosuj wstążkę . Wybierz dowolną kartę, która jest odpowiednim miejscem do dodania przycisku. Dla mnie na liście rozwijanej w prawym górnym rogu wybieram Karty narzędzi , następnie wybierz & amp; rozszerzać Lista zadań . Kliknij Nowa grupa i dodaj nową grupę (nazwałem moją nową grupę „Folder”). Wybierz nową grupę. Następnie z lewej listy rozwijanej wybierz Makra . Podprogram będzie widoczny (należy go zadeklarować za pomocą „Public Sub”). Wybierz podprogram z listy, a następnie kliknij Dodaj & gt; & gt; . Po zamknięciu opcji zobaczysz swój przycisk na wstążce po kliknięciu zadania.
Lakey
Działa tu doskonale dla kont Exchange. Jakiego typu konta programu Outlook używasz (gdzie znajdują się elementy czynności do wykonania)?
thims
Wow to rzeczywiście działa na mojej skrzynce odbiorczej Exchange (nawet nie pomyślałem, żeby to sprawdzić). Wszystkie moje oflagowane elementy poczty znajdują się zwykle w plikach PST. Wygląda na to, że problem dotyczy tylko oznaczonych flag, które znajdują się w pliku PST.
Lakey
W rzeczywistości działa dla mnie dla kont POP3 z plikami PST. Czy twoje pliki PST należą do kont POP3 lub po prostu zostały połączone jako samodzielne pliki PST?
thims

Odpowiedzi:

1

To jest błąd MAPI_E_INVALID_ENTRYID. Może to oznaczać, że plik PST jest uszkodzony. Spróbuj uciekać scanpst.exe narzędzie do naprawy, a następnie spróbuj ponownie uruchomić skrypt.

Możesz także spróbować uruchomić skrypt dla elementów w innym pliku PST.

EDYCJA: Zdarza się czasami, że Outlook profil jest uszkodzony i zachowuje się dziwnie. Możesz spróbować utworzyć nowy profil programu Outlook.

thims
źródło
Właśnie stworzyłem zupełnie nowy plik danych PST. Stworzyłem w nim podfolder, a następnie przeniosłem 2 wiadomości z mojej skrzynki odbiorczej Exchange do podfolderu. Oflagowałem wiadomości, aby pojawiły się na liście zadań. Podczas uruchamiania makra w tych komunikatach występuje ten sam błąd. Do tej pory wszystkie moje próby zostały wykonane na moim komputerze roboczym. Spróbuję dziś wieczorem w domu.
Lakey
Aktualizacja. Trochę więcej eksperymentów i dowiedziałem się, że błąd występuje tylko wtedy, gdy obecnie badasz różne PST niż ten, na którym znajduje się oznaczony flagą element poczty podczas uruchamiania makra. Szczegóły można znaleźć w moim pytaniu.
Lakey
Nadal działa tutaj. Ok, co świadczy o twoim programie Outlook 2013 (32/64)? Ponadto, którą wersję posiadasz (Office 365 kliknij, aby uruchomić lub autonomiczną instalację pakietu Office)?
thims
I jeszcze jedno pytanie: czy masz zainstalowany pakiet Office 2013 SP1 wraz z najnowszymi aktualizacjami z witryny Microsoft Update?
thims
Zaktualizowałem także odpowiedź, sugerując utworzenie nowego profilu programu Outlook.
thims