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 untuk keperluan korporat dan komersial sering kali memiliki ratusan subfolder di bawah folder kotak masuk utama atau folder item terkirim, dengan email yang relevan di setiap folder tersebut. Ketika muncul kebutuhan untuk menelusuri semua folder tersebut untuk melakukan beberapa tindakan pada email yang ada di dalamnya, menulis skrip VBA yang berbeda untuk setiap folder menjadi mimpi buruk. Bayangkan memiliki lima ratus folder di bawah folder Kotak Masuk utama dan kebutuhan skrip VBA untuk setiap folder tersebut. Pengguna harus menulis lima ratus skrip unik untuk setiap folder tersebut, dengan fungsi yang serupa. Lebih buruk lagi, jika ada kebutuhan untuk melakukan beberapa modifikasi, semua lima ratus skrip tersebut perlu diperbarui. Untungnya, ada metodologi pemrograman yang dikenal sebagai rekursi, yang menyelesaikan masalah kita dengan mudah. ​​Ide rekursi adalah agar sebuah fungsi berulang kali memanggil dirinya sendiri dan melalui pola yang sama berulang kali, untuk memproses semua item, dengan logika yang sama. Berikut adalah contoh skrip yang dimulai dari folder Kotak Masuk utama dan berulang melalui 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 VBA Outlook, tempelkan kode di atas ke dalam “ThisOutlookSession”. Penting untuk diketahui bahwa sebelum menjalankan skrip ini, pustaka objek Microsoft Outlook XX harus ditambahkan ke referensi proyek dari menu “Tools”, di mana XX adalah versi pustaka.

Pahami Scriptnya

Fungsi Rekursi“ProcessCurrentFolder” adalah fungsi rekursif yang memanggil dirinya sendiri jika subfolder ditemukan di dalam folder saat ini. Fungsi ini akan terus memanggil dirinya sendiri sampai semua folder mulai dari hierarki awal telah dipindai dan diproses. Skrip ini akan bekerja dengan folder Outlook apa pun. “olFolderInbox” dapat diganti dengan “olFolderSentMail”, “olFolderOutbox”, atau dapat berupa folder Outlook non-default lainnya. Penting juga untuk diketahui bahwa tidak perlu melakukan panggilan awal dari folder root inbox atau outbox, tetapi dapat mulai bekerja dari folder mana pun ke bawah. “For Each objMail In objParentFolder.Items” adalah baris kunci yang akan mengulang semua item yang terdapat dalam folder yang sedang dipindai; oleh karena itu, di situlah pengguna perlu meletakkan kode yang diperlukan untuk memproses item.

Pulih dari Bencana

Jika Anda menghadapi situasi Outlook mengalami crash atau kegagalan, Anda tidak perlu khawatir tentang hilangnya email, karena 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 pemulihan dwg ke rar produk perangkat lunak pemulihan. Untuk informasi lebih lanjut kunjungi www.datanumen.com

Bagikan sekarang:

Komentar ditutup.