Kui sisendkausta või saadetud üksuste kaustas on alamkaustad, on väga kasulik näpunäide, kuidas neid VBA-ga rekursiivsel ja tõhusal viisil läbida. See kriitiline osa on paljudes teistes VBA projektides taaskasutatav.
Kaustade läbimise kriitiline probleem
Outlooki äri- ja ärikasutajatel on sageli sadu alamkaustu oma peamise postkasti või saadetud kirjade kausta all, millest igaühes on asjakohased meilid. Kui tekib vajadus kõiki neid kaustu läbi vaadata, et seal olevate meilidega midagi teha, muutub erinevate VBA-skriptide kirjutamine erinevate kaustade jaoks õudusunenäoks. Kujutage ette, et peamise postkasti all on viissada kausta ja igaühe jaoks on vaja VBA-skripti. Kasutaja peab iga kausta jaoks kirjutama viissada unikaalset skripti sarnase funktsionaalsusega. Veelgi hullem on see, et kui tekib vajadus teha muudatusi, tuleb kõiki viissada skripti uuendada. Õnneks on olemas programmeerimismetoodika, mida tuntakse rekursioonina ja mis lahendab meie probleemi imelihtsalt. Rekursiooni idee seisneb selles, et funktsioon kutsub ennast korduvalt välja ja käib läbi sama mustri ikka ja jälle, et töödelda kõiki üksusi sama loogikaga. Allpool on näidisskript, mis algab peamisest postkastist ja käib läbi kõik alamkaustad ja üksused igas nendes kaustades.
Outlooki VBA skript
Allpool on täielik Outlook VBA skript:
Private Sub Main()
Dim objNameSpace As Outlook.NameSpace
Dim objMainFolder As Outlook.Folder
Set objNameSpace = Application.GetNamespace("MAPI")
Set objMainFolder = objNameSpace.GetDefaultFolder(olFolderInbox)
Call ProcessCurrentFolder(objMainFolder)
End Sub
Private Sub ProcessCurrentFolder(ByVal objParentFolder As Outlook.MAPIFolder)
Dim objCurFolder As Outlook.MAPIFolder
Dim objMail As Outlook.MailItem
On Error Resume Next
' Process each items in the folder
For Each objMail In objParentFolder.Items
' Do your task here ...
Next
' Process the subfolders in the folder recursively
If (objParentFolder.Folders.Count > 0) Then
For Each objCurFolder In objParentFolder.Folders
Call ProcessCurrentFolder(objCurFolder)
Next
End If
End Sub
Kuidas skripti käivitada
press Alt + F11 , et avada Outlooki VBA redaktor ja kleepida ülaltoodud kood jaotisse „ThisOutlookSession“. Oluline on teada, et enne selle skripti käivitamist tuleks Microsoft Outlooki XX objektiteek lisada projekti viidetele menüüst „Tööriistad“, kus XX on teegi versioon.
Mõistke skripti

Katastroofist taastumine
Kui teil on Outlooki krahh või rike, pole vaja kadunud meilide pärast muretseda, sest DataNumen toob teie elu tagasi normaalseks Outlooki korruptsiooni parandamine tõhusal viisil.
Autori sissejuhatus:
Mary Underwood on andmete taastamise ekspert DataNumen, Inc., mis on maailmas juhtiv andmete taastamise tehnoloogiate, sealhulgas dwg taastamine ja rar taastamistarkvara tooted. Lisateabe saamiseks külastage www.datanumenCom