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
Pengguna 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

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