Cara Melintasi Pohon Folder secara Rekursif di Outlook melalui VBA

Bagikan sekarang:

Jika ada sub folder di dalam folder Kotak Masuk atau Item Terkirim utama, bagaimana cara melintasinya secara rekursif dan efisien, menggunakan VBA, adalah tip yang sangat berguna. Bagian penting ini dapat digunakan kembali di banyak proyek VBA lainnya.

Masalah Kritis Melintasi Folder

Pohon Folder Di OutlookPengguna Outlook korporat dan komersial sering kali memiliki ratusan subfolder di bawah kotak masuk utama atau folder item terkirim, dengan email yang relevan di masing-masing subfolder tersebut. Ketika ada kebutuhan untuk menelusuri semua folder tersebut untuk melakukan beberapa tindakan pada email yang ada di dalamnya, menulis skrip VBA yang berbeda untuk folder yang berbeda menjadi mimpi buruk. Bayangkan memiliki lima ratus folder di bawah folder Kotak Masuk utama dan persyaratan skrip VBA untuk masing-masing folder tersebut. Pengguna harus menulis lima ratus skrip unik untuk masing-masing folder tersebut, dengan fungsi serupa. Lebih buruk lagi, jika ada kebutuhan untuk melakukan beberapa modifikasi, kelima ratus skrip akan diminta untuk diperbarui. Untungnya ada metodologi pemrograman yang dikenal sebagai rekursi, yang menyelesaikan masalah kita dengan sangat mudah. Gagasan rekursi adalah agar suatu fungsi berulang kali memanggil dirinya sendiri dan melalui pola yang sama berulang kali, untuk memproses semua item, dengan logika yang sama. Di bawah ini adalah contoh skrip yang starts dari folder Kotak Masuk utama dan mengulangi semua subfolder dan item di setiap folder tersebut.

Skrip VBA Outlook

Di bawah ini adalah skrip Outlook VBA lengkap:

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

Cara Menjalankan Script

Media Alt + F11 untuk membuka editor Outlook VBA dan menempelkan kode di atas di "ThisOutlookSession". Penting untuk diketahui bahwa sebelum menjalankan skrip ini, Microsoft Outlook XX Object library harus ditambahkan ke referensi proyek dari menu "Alat", di mana XX adalah librarversi y.

Pahami Scriptnya

Fungsi Rekursi"ProcessCurrentFolder" adalah fungsi rekursif, yang memanggil dirinya sendiri, jika subfolder ditemukan di dalam folder saat ini. Itu akan terus mengingat dirinya sendiri kecuali semua folder starting dari hie awalrarchy dipindai dan diproses. Skrip ini akan berfungsi dengan folder Outlook apa pun. "olFolderInbox" dapat diganti dengan "olFolderSentMail", "olFolderOutbox", atau folder Outlook non-default lainnya. Penting juga untuk diketahui bahwa panggilan awal tidak perlu dilakukan dari folder root inbox atau outbox tetapi dapattart bekerja dari folder manapun ke bawah. “Untuk Setiap objMail Di objParentFolder.Items” adalah baris kunci yang akan mengulangi semua item yang terdapat dalam folder saat ini yang sedang dipindai; oleh karena itu di situlah pengguna perlu meletakkan kode yang diperlukan untuk memproses item.

Pulih dari Bencana

Jika Anda dihadapkan pada situasi crash atau kegagalan Outlook, tidak perlu khawatir tentang lost email, sebagai DataNumen akan membawa hidup Anda kembali normal oleh memperbaiki korupsi Outlook dengan cara yang efisien.

Pengantar Penulis:

Mary Underwood adalah pakar pemulihan data di DataNumen, Inc., yang merupakan pemimpin dunia dalam teknologi pemulihan data, termasuk dwg pemulihan ke rar produk perangkat lunak pemulihan. Untuk informasi lebih lanjut kunjungi www.datanumen.com

Bagikan sekarang:

Komentar ditutup.