Sök…


Introduktion

Första delen av en introduktion till butiker och de mappar de innehåller. Innehåller makron för att visa (1) namnen på tillgängliga butiker och (2) namnen på tillgängliga butiker och toppnivåmapparna inom dem.

2.1 Förväntad förkunskap

  • Du är Outlook-användare och förstår termer som "e-post", "mottagen tid", "ämne" och "Mappruta".
  • Du vet hur du får åtkomst till Outlook Visual Basic Editor och skapa en modul. Se introduktion del 1 vid behov.
  • Du har åtminstone en grundläggande kunskap om VBA. Jag förklarar subroutiner och variabler utan förklaring. Jag använder Withs, Ifs och Loops utan förklaring. Jag säger att något är en samling. Jag ber dig kopiera kod till en modul och köra den. Det finns många onlinestudier även om de flesta är för Excel VBA och koncentrerar sig mer på att använda språket med Excel än på språket. Sökning efter “VBA-tutorial” ger upp några som koncentrerar sig på språket mer än applikationen som ser tillfredsställande ut.
  • Du behöver inte känna till Outlook Object Model; denna handledning introducerar dig för en liten del av den.

2.2 Butiker

Outlook lagrar e-postmeddelanden, kalenderobjekt, anteckningar, uppgifter och så vidare i filer som kallas butiker . Om du tittar på mappfönstret ser du något som:

Aaaaaaaaaa
  Inbox
  Drafts
  Deleted Items
  :  :

Bbbbbbbbbb
  Inbox
  Drafts
  Deleted Items
  :  :

Cccccccccc
:  :

"Aaaaaaaaaa", "Bbbbbbbbbb" och "Cccccccccc" är användar- eller visningsnamn för butiker. Jag har alltid accepterat standardvärden för Outlook för dessa namn som har ändrats under åren. När standardvärdet var mitt namn nu är det min e-postadress. Filnamnet för dessa butiker kan vara detsamma men med en tillägg som PST eller OST eller kan vara något helt annat. Ett VBA-makro behöver användarnamnet för att komma åt en butik och handlar inte om filnamn eller tillägg.

Du kan ha så många butiker som du vill. Jag har "Outlook-datafil" som skapades för mig när jag installerade Outlook. När jag lagt till konton för mina e-postadresser skapade Outlook nya butiker med namnet på e-postadressen som "[email protected]" och "[email protected]". För att minska storleken på min huvudbutik sparar jag gamla e-postmeddelanden i butiker med namn som "Archive 2015".

Om du är en affärsanvändare kan du ha tillgång till delade butiker eller till kollegor.

Makronna nedan visar tre olika sätt att lista de butiker du har åtkomst till. Jag föreslår att du skapar en ny modul för att hålla koden nedan och använda F4 för att komma åt modulens egenskaper så att du kan namnge den som "ModIntro" eller något annat namn du väljer. Om du har slutfört del 1 av denna serie, har du redan en sådan modul.

Kopiera dessa makron till en modul och testa att var och en ger samma utgång.

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

Du kommer att upptäcka med VBA att det ofta finns flera metoder för att uppnå samma effekt. Ovan har jag visat tre metoder för att komma åt butikerna. Du behöver inte komma ihåg dem alla - välj din egen favorit - men du behöver vara medveten om att det finns flera metoder eftersom andra människor, vars kod du kan behöva studera, har olika favoriter.

Variablerna StoresColl i makron ListStores1() och ListStores2() är båda samlingar men har olika typer av objekt: Store och Folder . Ett Store objekt kan bara referera till en fil på din skiva. En Folder kan referera till en fil på skivan men kan också referera till mappar i en butik som "Inbox" och "Sent Items". Stores , Folders , Store och Folder är alla en del av Outlook-objektmodellen. Denna tutorial-serie introducerar dig till modellen, men det är inte en formell definition. Om du vill ha en formell definition skriver du "outlook vba object model" i din favorit sökmotor. Se till att du tittar på VBA-versionen av modellen.

2.3 Mappar på toppnivå

I mitt mappfönsterexempel ovan listar jag bara tre standardmappar: "Inbox", "Utkast" och "Raderade objekt". Det finns andra standardmappar och du kan skapa så många egna mappar som du vill. Vissa människor skapar mappar under Inkorgen men jag föredrar att skapa nya mappar på samma nivå som Inkorgen. Dina mappar kan ha undermappar som kan ha sina egna undermappar till vilket djup som helst.

Följande makro ger en lista över formuläret:

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

där A, B och C är butiker och A1, B1, C1 och så vidare är mappar inom A, B och C. Om A1, B1, C1 och så vidare har undermappar kommer de inte att listas av detta makro. Åtkomst till djupare kapslade mappar kommer att behandlas i nästa del av denna handledning.

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 Vad du bör komma ihåg från denna självstudie

  • En butik är en fil där Outlook lagrar e-post, kalenderobjekt, anteckningar, uppgifter och så vidare.
  • En butik kan innehålla Outlook-standardmappar som "Inkorgen" och "Skickade objekt".
  • En butik kan också innehålla mappar som skapats av användare.
  • Både Outlook-standardmappar och användarskapade mappar kan innehålla användarskapade undermappar, undermundmappar och så vidare till vilket djup som helst.
  • Hur man listar butiker.
  • Så här listar du butiker och toppmapparna i dessa butiker.

Bekännelse: Jag kommer inte ihåg någon av "Hows". Jag har subroutiner och funktioner som kommer ihåg för mig.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow