Suche…


Einführung

Erster Teil einer Einführung zu den Filialen und den darin enthaltenen Ordnern. Enthält Makros zur Anzeige (1) der Namen der zugänglichen Geschäfte und (2) der Namen der zugänglichen Geschäfte und der Ordner der obersten Ebene.

2.1 Erwartete Vorkenntnisse

  • Sie sind ein Outlook-Benutzer und verstehen Begriffe wie "E-Mail", "Empfangszeit", "Betreff" und "Ordnerbereich".
  • Sie wissen, wie Sie auf den Visual Basic-Editor von Outlook zugreifen und ein Modul erstellen. Siehe bei Bedarf Teil 1.
  • Sie verfügen mindestens über Grundkenntnisse in VBA. Ich erkläre Unterprogramme und Variablen ohne Erklärung. Ich benutze Withs, Ifs und Loops ohne Erklärung. Ich sage dir etwas ist eine Sammlung. Ich sage Ihnen, Code in ein Modul zu kopieren und auszuführen. Es gibt viele Online-Lernprogramme, obwohl die meisten für Excel VBA sind und sich mehr auf die Verwendung der Sprache mit Excel als auf die Sprache konzentrieren. Wenn Sie nach „VBA-Tutorial“ suchen, werden einige angezeigt, die sich mehr auf die Sprache konzentrieren als auf die Anwendung, die zufriedenstellend aussieht.
  • Sie müssen das Outlook-Objektmodell nicht kennen. Dieses Tutorial führt Sie in einen kleinen Teil davon ein.

2.2 Geschäfte

Outlook speichert E-Mails, Kalenderelemente, Notizen, Aufgaben usw. in Dateien, die als Stores bezeichnet werden . Wenn Sie Ihr Ordnerfenster betrachten, sehen Sie Folgendes:

Aaaaaaaaaa
  Inbox
  Drafts
  Deleted Items
  :  :

Bbbbbbbbbb
  Inbox
  Drafts
  Deleted Items
  :  :

Cccccccccc
:  :

"Aaaaaaaaaaa", "Bbbbbbbbbb" und "Cccccccccc" sind die Benutzer- oder Anzeigenamen von Stores. Ich habe immer Outlook-Standardeinstellungen für diese Namen akzeptiert, die sich im Laufe der Jahre geändert haben. Sobald der Standardwert nun mein Name war, ist es meine E-Mail-Adresse. Der Dateiname für diese Speicher kann derselbe sein, jedoch mit einer Erweiterung wie PST oder OST oder möglicherweise etwas völlig anderes. Ein VBA-Makro benötigt den Benutzernamen für den Zugriff auf ein Geschäft und ist nicht mit den Dateinamen oder der Erweiterung befasst.

Sie können so viele Geschäfte haben, wie Sie möchten. Ich habe eine "Outlook-Datendatei", die bei der Installation von Outlook für mich erstellt wurde. Wenn ich Konten für meine E-Mail-Adressen hinzufügte, erstellte Outlook neue Speicher, die nach der E-Mail-Adresse benannt wurden, z. B. „[email protected]“ und „[email protected]“. Um die Größe meines Hauptspeichers zu reduzieren, speichere ich alte E-Mails mit Namen wie "Archiv 2015" in Geschäften.

Wenn Sie ein Geschäftsbenutzer sind, haben Sie möglicherweise Zugriff auf gemeinsam genutzte Geschäfte oder auf Geschäfte von Kollegen.

Die folgenden Makros zeigen drei verschiedene Arten der Auflistung der Geschäfte, auf die Sie zugreifen können. Ich empfehle Ihnen, ein neues Modul zu erstellen, das den untenstehenden Code enthält und F4 verwendet, um auf die Eigenschaften des Moduls zuzugreifen, sodass Sie es als "ModIntro" oder einen anderen Namen Ihrer Wahl bezeichnen können. Wenn Sie Teil 1 dieser Serie abgeschlossen haben, verfügen Sie bereits über ein solches Modul.

Kopieren Sie diese Makros in ein Modul und testen Sie, ob jedes die gleiche Ausgabe ergibt.

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

Bei VBA werden Sie feststellen, dass es oft mehrere Methoden gibt, um denselben Effekt zu erzielen. Oben habe ich drei Methoden gezeigt, um auf die Geschäfte zuzugreifen. Sie müssen sich nicht alle merken - wählen Sie Ihren eigenen Favoriten -, aber Sie müssen sich dessen bewusst sein, dass es verschiedene Methoden gibt, da andere Personen, deren Code Sie möglicherweise lernen müssen, unterschiedliche Favoriten haben.

Die Variablen StoresColl in den Makros ListStores1() und ListStores2() sind beide Sammlungen, enthalten jedoch unterschiedliche Objekttypen: Store und Folder . Ein Store Objekt kann nur auf eine Datei auf Ihrer Disc verweisen. Ein Folder kann auf eine Datei auf einer Disc verweisen, kann aber auch auf Ordner in einem Geschäft wie „Posteingang“ und „Gesendete Objekte“ verweisen. Stores , Folders , Store und Folder sind alle Teil des Outlook-Objektmodells. Diese Tutorialserie führt Sie in das Modell ein, ist aber keine formale Definition. Wenn Sie eine formale Definition wünschen, geben Sie "outlook vba object model" in Ihre bevorzugte Suchmaschine ein. Stellen Sie sicher, dass Sie sich die VBA-Version des Modells ansehen.

2.3 Ordner der obersten Ebene

In meinem Beispiel im Ordnerbereich liste ich nur drei Standardordner auf: "Posteingang", "Entwürfe" und "Gelöschte Objekte". Es gibt andere Standardordner, und Sie können beliebig viele Ordner erstellen. Einige Leute erstellen Ordner unter Posteingang, aber ich ziehe es vor, neue Ordner auf derselben Ebene wie Posteingang zu erstellen. Ihre Ordner können Unterordner haben, die ihre eigenen Unterordner in beliebiger Tiefe haben können.

Das folgende Makro erzeugt eine Auflistung des Formulars:

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

Wenn A, B und C Speicher sind und A1, B1, C1 usw. Ordner innerhalb von A, B und C sind. Wenn A1, B1, C1 usw. Unterordner haben, werden sie von diesem Makro nicht aufgelistet. Der Zugriff auf tiefer verschachtelte Ordner wird im nächsten Teil dieses Tutorials behandelt.

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 Was Sie in diesem Tutorial beachten sollten

  • Ein Geschäft ist eine Datei, in der Outlook E-Mails, Kalenderelemente, Notizen, Aufgaben usw. speichert.
  • Ein Geschäft kann Outlook-Standardordner wie "Posteingang" und "Gesendete Objekte" enthalten.
  • Ein Geschäft kann auch vom Benutzer erstellte Ordner enthalten.
  • Sowohl Outlook-Standardordner als auch von Benutzern erstellte Ordner können vom Benutzer erstellte Unterordner, Unterunterordner usw. in beliebiger Tiefe enthalten.
  • Wie kann ich Geschäfte auflisten?
  • Auflisten der Geschäfte und der Ordner der obersten Ebene innerhalb dieser Geschäfte.

Geständnis: Ich erinnere mich an keines der „Hows“. Ich habe Unterprogramme und Funktionen, die für mich in Erinnerung bleiben.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow