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.

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.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.