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

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