Zoeken…


Invoering

Eerste deel van een inleiding tot winkels en de mappen die ze bevatten. Bevat macro's om (1) de namen van toegankelijke winkels en (2) de namen van toegankelijke winkels en de mappen op het hoogste niveau weer te geven.

2.1 Verwachte voorkennis

  • U bent een Outlook-gebruiker en begrijpt termen zoals "e-mail", "ontvangen tijd", "onderwerp" en "Mapvenster".
  • U weet hoe u de Visual Basic Editor van Outlook kunt openen en een module kunt maken. Zie indien nodig deel 1 van de inleiding.
  • Je hebt minimaal een basiskennis van VBA. Ik verklaar subroutines en variabelen zonder uitleg. Ik gebruik Withs, Ifs en Loops zonder uitleg. Ik zeg je dat iets een verzameling is. Ik zeg u om code naar een module te kopiëren en uit te voeren. Er zijn veel online tutorials, hoewel de meeste voor Excel VBA zijn en zich meer concentreren op het gebruik van de taal met Excel dan op de taal. Zoeken naar "VBA-tutorial" brengt sommigen die zich meer op de taal concentreren dan de toepassing die er bevredigend uitziet.
  • U hoeft het Outlook Object Model niet te kennen; deze tutorial laat je kennismaken met een klein deel ervan.

2.2 Winkels

Outlook slaat e-mails, agenda-items, notities, taken en dergelijke op in bestanden die bekend staan als Stores . Als u naar uw mappenvenster kijkt, ziet u iets als:

Aaaaaaaaaa
  Inbox
  Drafts
  Deleted Items
  :  :

Bbbbbbbbbb
  Inbox
  Drafts
  Deleted Items
  :  :

Cccccccccc
:  :

"Aaaaaaaaaa", "Bbbbbbbbbb" en "Cccccccccc" zijn de gebruikers- of weergavenamen van Stores. Ik heb altijd Outlook-standaardinstellingen geaccepteerd voor deze namen die in de loop der jaren zijn veranderd. Ooit was mijn standaardnaam nu mijn e-mailadres. De bestandsnaam voor deze winkels kan hetzelfde zijn, maar met een extensie zoals PST of OST of kan iets heel anders zijn. Een VBA-macro heeft de gebruikersnaam nodig om toegang te krijgen tot een winkel en houdt zich niet bezig met de bestandsnamen of de extensie.

U kunt zoveel winkels hebben als u wilt. Ik heb een "Outlook-gegevensbestand" dat voor mij is gemaakt toen ik Outlook installeerde. Toen ik accounts voor mijn e-mailadressen toevoegde, creëerde Outlook nieuwe winkels met de naam van het e-mailadres, zoals "[email protected]" en "[email protected]". Om de grootte van mijn hoofdwinkel te verkleinen, bewaar ik oude e-mails in winkels met namen zoals "Archief 2015".

Als u een zakelijke gebruiker bent, heeft u mogelijk toegang tot gedeelde winkels of de winkels van collega's.

De onderstaande macro's tonen drie verschillende manieren om de winkels weer te geven waartoe u toegang hebt. Ik stel voor dat u een nieuwe module maakt om de onderstaande code te behouden en F4 te gebruiken om toegang te krijgen tot de eigenschappen van de module, zodat u deze kunt noemen als "ModIntro" of een andere naam naar keuze. Als u deel 1 van deze serie hebt voltooid, beschikt u al over een dergelijke module.

Kopieer deze macro's naar een module en test die elk dezelfde uitvoer geven.

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

Bij VBA zult u merken dat er vaak verschillende methoden zijn om hetzelfde effect te bereiken. Hierboven heb ik drie manieren getoond om toegang te krijgen tot de winkels. Je hoeft ze niet allemaal te onthouden - kies je eigen favoriet - maar je moet wel weten dat er verschillende methoden zijn omdat andere mensen, van wie je de code misschien moet bestuderen, verschillende favorieten hebben.

De variabelen StoresColl in macro's ListStores1() en ListStores2() zijn beide collecties maar bevatten verschillende soorten objecten: Store en Folder . Een Store object kan alleen verwijzen naar een bestand op uw schijf. Een Folder kan verwijzen naar een bestand op schijf, maar kan ook verwijzen naar mappen in een winkel zoals "Inbox" en "Sent Items". Stores , Folders , Store en Folder maken allemaal deel uit van het Outlook-objectmodel. In deze zelfstudieserie maakt u kennis met het model, maar het is geen formele definitie. Als u een formele definitie wilt, typt u "outlook vba-objectmodel" in uw favoriete zoekmachine. Zorg ervoor dat u naar de VBA-versie van het model kijkt.

2.3 Mappen op het hoogste niveau

In het bovenstaande voorbeeld van mijn mappenvenster vermeld ik slechts drie standaardmappen: "Inbox", "Drafts" en "Deleted Items". Er zijn andere standaardmappen en u kunt zoveel mappen maken als u wilt. Sommige mensen maken mappen onder Inbox, maar ik maak liever nieuwe mappen op hetzelfde niveau als Inbox. Uw mappen kunnen submappen bevatten die hun eigen submappen tot elke diepte kunnen hebben.

De volgende macro zal een lijst van het formulier produceren:

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

waar A, B en C winkels zijn en A1, B1, C1 enzovoort mappen binnen A, B en C zijn. Als A1, B1, C1 enzovoort submappen hebben, worden deze niet in deze macro vermeld. Toegang tot dieper geneste mappen zal worden behandeld in het volgende deel van deze tutorial.

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 Wat u moet onthouden uit deze tutorial

  • Een winkel is een bestand waarin Outlook e-mails, agenda-items, notities, taken enzovoort opslaat.
  • Een winkel kan standaardmappen van Outlook bevatten, zoals 'Postvak IN' en 'Verzonden items'.
  • Een winkel kan ook door gebruikers gemaakte mappen bevatten.
  • Zowel de standaardmappen van Outlook als de door de gebruiker gemaakte mappen kunnen door de gebruiker gemaakte submappen, submappen, enzovoort tot elke diepte bevatten.
  • Lijst met winkels.
  • Hoe winkels en de mappen op het hoogste niveau in die winkels te vermelden.

Biecht: ik herinner me geen van beide "Hows". Ik heb subroutines en functies die voor mij onthouden zijn.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow