Si të përshkoni një pemë dosjeje në mënyrë rekursive në Outlook përmes VBA

Nëse ka nën-dosje brenda dosjes kryesore Inbox ose Sent Items, është një këshillë shumë e dobishme se si t'i kaloni ato në një mënyrë rekursive dhe efikase, duke përdorur VBA. Kjo pjesë kritike është e ripërdorshme në shumë projekte të tjera VBA.

Problemi kritik i kalimit të dosjeve

Pema e dosjeve në OutlookPërdoruesit e korporatave dhe komerciale të Outlook shpesh përfundojnë duke pasur qindra nën-dosje nën kutinë e tyre kryesore hyrëse ose dosjen e artikujve të dërguar, me email përkatës në secilën prej tyre. Kur lind nevoja për të kaluar nëpër të gjitha ato dosje për të kryer disa veprime në emailet e përfshira në to, bëhet një makth të shkruash skripte të ndryshme VBA për dosje të ndryshme. Imagjinoni të keni pesëqind dosje nën dosjen kryesore të Inbox dhe një kërkesë skripti VBA për secilën prej tyre. Përdoruesi do të duhet të shkruajë pesëqind skripte unike për secilën prej këtyre dosjeve, me funksionalitet të ngjashëm. Për ta bërë më keq, nëse ka nevojë për të bërë disa modifikime, të pesëqind skriptet do të kërkohet të përditësohen. Për fat të mirë ekziston një metodologji programimi e njohur si rekursion, e cila e zgjidh problemin tonë si një fllad. Ideja e rekursionit është që një funksion të thërrasë vazhdimisht veten dhe të kalojë nëpër të njëjtin model vazhdimisht, në mënyrë që të përpunojë të gjithë artikujt, me të njëjtën logjikë. Më poshtë është një shembull i skenarit i cili starts nga dosja kryesore e Inbox dhe përsëritet nëpër të gjitha nëndosjet dhe artikujt në secilën prej atyre dosjeve.

Skript VBA i Outlook

Më poshtë është skripti i plotë i Outlook VBA:

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

Si të ekzekutoni skriptin

shtyp Alt + F11 për të hapur redaktorin VBA të Outlook dhe ngjitur kodin e mësipërm në "ThisOutlookSession". Është e rëndësishme të dini se përpara se të ekzekutoni këtë skript, Microsoft Outlook XX Object library duhet t'i shtohet referencave të projektit nga menytë "Tools", ku XX është librarversioni y.

Kuptoni Skriptin

Funksioni i rekursionit"ProcessCurrentFolder" është funksioni rekurziv, i cili thërret veten, nëse një nënfolder zbulohet brenda dosjes aktuale. Ai do të vazhdojë të rikujtojë veten, përveç nëse të gjitha dosjet starting nga hie fillestarerarchy skanohen dhe përpunohen. Ky skript do të funksionojë me çdo dosje Outlook. "olFolderInbox" mund të zëvendësohet me "olFolderSentMail", "olFolderOutbox" ose mund të jetë çdo dosje tjetër e Outlook jo e parazgjedhur. Është gjithashtu e rëndësishme të dini se nuk është e nevojshme të bëni thirrjen fillestare nga kutia hyrëse ose dosja e kutisë dalëse, por mund tëtarnuk punon nga ndonjë dosje poshtë. “Për çdo objMail në objParentFolder.Items” është linja kryesore e cila do të përsëritet nëpër të gjithë artikujt që gjenden në dosjen aktuale që po skanohet; prandaj ky është vendi ku përdoruesi duhet të vendosë kodin e kërkuar për të përpunuar artikujt.

Shërohuni nga fatkeqësia

Nëse jeni përballur me një situatë të rrëzimit ose dështimit të Outlook, nuk ka nevojë të shqetësoheni për lost emailet, si DataNumen do ta kthejë jetën tuaj në normalitet rregullimi i korrupsionit të Outlook në mënyrë efikase.

Hyrje e autorit:

Mary Underwood është një eksperte për rikuperimin e të dhënave DataNumen, Inc., e cila është lider botëror në teknologjitë e rikuperimit të të dhënave, duke përfshirë dwg shërim rar produkte softuerike për rikuperim. Për më shumë informacion vizitoni www.datanumen.com

Komentet janë të mbyllura.