Szukaj…


Wprowadzenie

Pierwsza część wprowadzenia do sklepów i zawartych w nich folderów. Zawiera makra do wyświetlania (1) nazw dostępnych sklepów oraz (2) nazw dostępnych sklepów i znajdujących się w nich folderów najwyższego poziomu.

2.1 Oczekiwana wcześniejsza wiedza

  • Jesteś użytkownikiem programu Outlook i rozumiesz pojęcia, takie jak „e-mail”, „otrzymany czas”, „temat” i „okienko folderów”.
  • Wiesz, jak uzyskać dostęp do Edytora Visual Basic programu Outlook i utworzyć moduł. W razie potrzeby patrz część wstępna 1.
  • Masz przynajmniej podstawową wiedzę na temat VBA. Deklaruję podprogramy i zmienne bez wyjaśnienia. Używam Withs, Ifs i Loops bez wyjaśnienia. Mówię ci, że coś jest kolekcją. Mówię ci, aby skopiować kod do modułu i uruchomić go. Istnieje wiele samouczków online, chociaż większość dotyczy Excel VBA i koncentrują się bardziej na używaniu języka z Excelem niż na języku. Wyszukiwanie „samouczka języka VBA” powoduje, że niektóre koncentrują się bardziej na języku niż na aplikacji, która wygląda zadowalająco.
  • Nie musisz znać modelu obiektowego programu Outlook; w tym samouczku zapoznasz się z jego niewielką częścią.

2.2 Sklepy

Program Outlook przechowuje wiadomości e-mail, elementy kalendarza, notatki, zadania i tak dalej w plikach znanych jako Sklepy . Jeśli spojrzysz na okienko folderów, zobaczysz coś takiego:

Aaaaaaaaaa
  Inbox
  Drafts
  Deleted Items
  :  :

Bbbbbbbbbb
  Inbox
  Drafts
  Deleted Items
  :  :

Cccccccccc
:  :

„Aaaaaaaaaa”, „Bbbbbbbbbb” i „Cccccccccc” to nazwy użytkowników lub wyświetlanych Sklepów. Zawsze akceptowałem domyślne ustawienia Outlooka dla tych nazw, które zmieniały się przez lata. Kiedyś domyślnym było moje imię, teraz jest to mój adres e-mail. Nazwa pliku dla tych sklepów może być taka sama, ale z rozszerzeniem, takim jak PST lub OST, lub może być czymś zupełnie innym. Makro VBA potrzebuje nazwy użytkownika, aby uzyskać dostęp do sklepu i nie dotyczy nazw plików ani rozszerzenia.

Możesz mieć tyle sklepów, ile chcesz. Mam „plik danych programu Outlook”, który został stworzony dla mnie podczas instalacji programu Outlook. Po dodaniu kont dla moich adresów e-mail program Outlook utworzył nowe sklepy o nazwach takich jak „[email protected]” i „[email protected]”. Aby zmniejszyć rozmiar mojego głównego sklepu, zapisuję stare e-maile w sklepach o nazwach takich jak „Archiwum 2015”.

Jeśli jesteś użytkownikiem biznesowym, możesz mieć dostęp do wspólnych sklepów lub sklepów współpracowników.

Poniższe makra pokazują trzy różne sposoby wyświetlania sklepów, do których można uzyskać dostęp. Sugeruję utworzenie nowego modułu do przechowywania poniższego kodu i użycia F4 w celu uzyskania dostępu do właściwości modułu, aby można było go nazwać „ModIntro” lub inną wybraną przez siebie nazwą. Jeśli ukończyłeś część 1 tej serii, będziesz już mieć taki moduł.

Skopiuj te makra do modułu i sprawdź, czy każdy daje takie same dane wyjściowe.

Sub ListStores1()

  Dim InxStoreCrnt As Integer
  Dim NS As NameSpace
  Dim StoresColl As Folders

  Set NS = CreateObject("Outlook.Application").GetNamespace("MAPI")
  Set StoresColl = NS.Folders

  For InxStoreCrnt = 1 To StoresColl.Count
    Debug.Print StoresColl(InxStoreCrnt).Name
  Next

End Sub
Sub ListStores2()
 
 Dim StoresColl As Stores
 Dim StoreCrnt As Store
 
 Set StoresColl = Session.Stores
 
 For Each StoreCrnt In StoresColl
   Debug.Print StoreCrnt.DisplayName
 Next
 
End Sub
Sub ListStores3()

  Dim InxStoreCrnt As Long

  With Application.Session
    For InxStoreCrnt = 1 To .Folders.Count
      Debug.Print .Folders(InxStoreCrnt).Name
    Next
  End With

End Sub

Przekonasz się z VBA, że często istnieje kilka metod osiągnięcia tego samego efektu. Powyżej pokazałem trzy metody dostępu do sklepów. Nie musisz pamiętać ich wszystkich - wybierz swojego ulubionego - ale musisz pamiętać, że istnieje kilka metod, ponieważ inne osoby, których kod może być potrzebny do nauki, będą miały różne ulubione.

Zmienne StoresColl w makrach ListStores1() i ListStores2() są kolekcjami, ale zawierają różne typy obiektów: Store i Folder . Obiekt Store może odwoływać się tylko do pliku na dysku. Folder może odwoływać się do pliku na dysku, ale może także odwoływać się do folderów w sklepie, takich jak „Skrzynka odbiorcza” i „Elementy wysłane”. Stores , Folders , Store i Folder są częścią programu Outlook Object Model. Ta seria samouczków przedstawia model, ale nie jest to formalna definicja. Jeśli chcesz formalną definicję, wpisz „outlook vba object model” w swojej ulubionej wyszukiwarce. Pamiętaj, aby spojrzeć na wersję modelu VBA.

2.3 Foldery najwyższego poziomu

W powyższym przykładzie okienka folderów wymieniłem tylko trzy standardowe foldery: „Skrzynka odbiorcza”, „Szkice” i „Usunięte elementy”. Istnieją inne standardowe foldery i możesz utworzyć dowolną liczbę własnych folderów. Niektóre osoby tworzą foldery w Inbox, ale wolę tworzyć nowe foldery na tym samym poziomie co Inbox. Twoje foldery mogą mieć podfoldery, które mogą mieć własne podfoldery do dowolnej głębokości.

Poniższe makro utworzy listę formularza:

A
   A1
   A2
   A3
B
   B1
   B2
C
   C1
   C2
   C3
   C4

gdzie A, B i C są sklepami, a A1, B1, C1 itd. są folderami w A, B i C. Jeśli A1, B1, C1 i tak dalej mają podfoldery, nie będą wyświetlane na liście przez to makro. Dostęp do głębiej zagnieżdżonych folderów zostanie omówiony w następnej części tego samouczka.

Sub ListStoresAndTopLevelFolders()

  Dim FldrCrnt As Folder
  Dim InxFldrCrnt As Long
  Dim InxStoreCrnt As Long
  Dim StoreCrnt As Folder

  With Application.Session
    For InxStoreCrnt = 1 To .Folders.Count
      Set StoreCrnt = .Folders(InxStoreCrnt)
      With StoreCrnt
        Debug.Print .Name
        For InxFldrCrnt = .Folders.Count To 1 Step -1
          Set FldrCrnt = .Folders(InxFldrCrnt)
          With FldrCrnt
            Debug.Print "   " & .Name
          End With
        Next
      End With
    Next
  End With

End Sub

2.4 O czym powinieneś pamiętać z tego samouczka

  • Sklep to plik, w którym program Outlook przechowuje wiadomości e-mail, elementy kalendarza, notatki, zadania itd.
  • Sklep może zawierać standardowe foldery programu Outlook, takie jak „Skrzynka odbiorcza” i „Elementy wysłane”.
  • Sklep może również zawierać foldery utworzone przez użytkownika.
  • Zarówno standardowe foldery programu Outlook, jak i foldery utworzone przez użytkownika mogą zawierać podfoldery utworzone przez użytkownika, podfoldery itp. Na dowolną głębokość.
  • Jak wyświetlić listę sklepów.
  • Jak wyświetlić listę sklepów i folderów najwyższego poziomu w tych sklepach.

Spowiedź: Nie pamiętam żadnego z „Jak”. Mam podprogramy i funkcje, które pamiętają dla mnie.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow