Paano Daanan ang isang Folder Tree nang Recursively sa Outlook sa pamamagitan ng VBA

Ipamahagi ngayon:

Kung mayroong mga sub folder sa loob ng pangunahing folder ng Inbox o Mga Naipadalang Item, kung paano gawin ang mga ito sa isang recursive at mahusay na paraan, gamit ang VBA, ay isang napaka-kapaki-pakinabang na tip. Ang kritikal na piraso na ito ay magagamit muli sa maraming iba pang mga proyekto ng VBA.

Ang Kritikal na Problema ng Paglalakbay sa Mga Folder

Folder Tree Sa OutlookAng mga korporasyon at komersyal na gumagamit ng Outlook ay kadalasang nagkakaroon ng daan-daang subfolder sa ilalim ng kanilang pangunahing inbox o folder ng mga ipinadalang item, na may mga kaugnay na email sa bawat isa sa mga iyon. Kapag kailangan mong suriin ang lahat ng mga folder na iyon upang magsagawa ng ilang aksyon sa mga email na nakapaloob sa mga iyon, nagiging bangungot ang pagsulat ng iba't ibang VBA script para sa iba't ibang folder. Isipin na mayroon kang limang daang folder sa ilalim ng pangunahing folder ng Inbox at isang kinakailangan sa VBA script para sa bawat isa sa mga iyon. Ang gumagamit ay kailangang sumulat ng limang daang natatanging script para sa bawat isa sa mga folder na iyon, na may magkakatulad na functionality. Ang mas malala pa, kung kailangan mong gumawa ng ilang pagbabago, ang lahat ng limang daang script ay kinakailangang i-update. Sa kabutihang palad, mayroong isang metodolohiya sa programming na kilala bilang recursion, na lumulutas sa ating problema nang napakadali. Ang ideya ng recursion ay para sa isang function na paulit-ulit na tatawag sa sarili nito at paulit-ulit na dumaan sa parehong pattern, upang maproseso ang lahat ng mga item, nang may parehong lohika. Nasa ibaba ang isang sample na script na nagsisimula sa pangunahing folder ng Inbox at umuulit sa lahat ng mga subfolder at item sa bawat isa sa mga folder na iyon.

Outlook VBA Script

Nasa ibaba ang kumpletong script ng 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

Paano Patakbuhin ang Script

pindutin Alt + F11 para buksan ang Outlook VBA editor at i-paste ang code sa itaas sa “ThisOutlookSession”. Mahalagang malaman na bago patakbuhin ang script na ito, dapat idagdag ang Microsoft Outlook XX Object library sa mga sanggunian ng proyekto mula sa mga menu na “Tools”, kung saan ang XX ay ang bersyon ng library.

Maunawaan ang Script

Pag-andar ng RecursionAng "ProcessCurrentFolder" ay ang recursive function, na tumatawag sa sarili nito, kung ang isang subfolder ay matuklasan sa loob ng kasalukuyang folder. Patuloy nitong tatawagin ang sarili nito maliban kung ang lahat ng folder simula sa unang hierarchy ay na-scan at naproseso. Ang script na ito ay gagana sa anumang folder ng Outlook. Ang "olFolderInbox" ay maaaring palitan ng "olFolderSentMail", "olFolderOutbox", o maaaring maging anumang iba pang hindi default na folder ng Outlook. Mahalaga ring malaman na hindi kinakailangang gawin ang unang tawag mula sa root inbox o outbox folder ngunit maaari itong magsimulang gumana mula sa anumang folder pababa. Ang "For Each objMail In objParentFolder.Items" ay ang pangunahing linya na babalik sa lahat ng mga item na nakapaloob sa kasalukuyang folder na ini-scan; samakatuwid, doon kailangang ilagay ng user ang kinakailangang code upang maproseso ang mga item.

Bumawi sa Kalamidad

Kung nahaharap ka sa isang sitwasyon ng pag-crash o pagkabigo ng Outlook, hindi mo kailangang mag-alala tungkol sa mga nawawalang email, dahil DataNumen ibabalik sa normal ang iyong buhay sa pamamagitan ng pag-aayos ng katiwalian sa Outlook sa isang mahusay na paraan.

Panimula ng May-akda:

Si Mary Underwood ay isang dalubhasa sa pagbawi ng data sa DataNumen, Inc., na pinuno ng mundo sa mga teknolohiya sa pagbawi ng data, kasama ang pagbawi ng dwg at rar mga produkto ng software sa pag-recover. Para sa karagdagang impormasyon pagbisita www.datanumen. Sa

Ipamahagi ngayon:

Mga komento ay sarado.