Outlook VBA ile Tüm Posta Klasörlerinde Belirli Bir Kuralı Hızla Çalıştırma

Şimdi paylaş:

Varsayılan olarak, aynı anda yalnızca bir klasörde kural çalıştırabilirsiniz. Bu makalede, tüm posta klasörlerinde belirli bir kuralı çalıştırmak için bir parça VBA kodunu nasıl kullanacağınızı öğreteceğiz.

Outlook, kullanıcıların kuralı manuel olarak çalıştırmasına izin verir. “Kurallar ve Uyarılar” iletişim kutusuna erişebilir ve “Kuralları Şimdi Çalıştır” düğmesine basabilirsiniz. Sonraki iletişim kutusunda, belirli bir kural seçin ve bu kuralı çalıştırmak istediğiniz klasörü seçin. Ancak, bir kuralı tüm posta klasörlerinde hızlı bir şekilde çalıştırmak isterseniz, aşağıdaki VBA kodunu kullanabilirsiniz.

Outlook VBA ile Tüm Posta Klasörlerinde Belirli Bir Kuralı Hızla Çalıştırın

Belirli Bir Kuralı Tüm Posta Klasörlerinde Hızla Çalıştırın

  1. İlk etapta, star• Outlook programınız.
  2. Ardından ana Outlook penceresinde “Alt + F11” tuş düğmelerine basın.
  3. Ardından, ortaya çıkan “Uygulamalar için Microsoft Visual Basic” penceresinde, kullanımda olmayan bir modülü açmalısınız.
  4. Daha sonra aşağıdaki VBA kodunu bu modül penceresine kopyalayın. Ayrıca, kural adı gibi bazı satırları kendi durumunuza göre değiştirmelisiniz.
Sub RunSpecificRule_AllMailFolders()
    Dim objStores As Outlook.Stores
    Dim objStore As Outlook.Store
    Dim objPSTFile As Outlook.Folder
    Dim objFolders As Outlook.folders
    Dim objFolder As Object

    Set objStores = Outlook.Application.Session.Stores
 
    'Process all Outlook PST files in your Outlook
    For Each objStore In objStores
        Set objPSTFile = objStore.GetRootFolder
        For Each objFolder In objPSTFile.folders
            Call ProcessFolders(objFolder)
        Next
    Next

    MsgBox "Complete!", vbExclamation + vbOKOnly, "Run Rule "
End Sub

Sub ProcessFolders(ByVal objCurrentFolder As Outlook.Folder)
    Dim objRules As Outlook.Rules
    Dim objRule As Outlook.Rule
    Dim objSubfolder As Outlook.Folder

    Set objRules = Outlook.Application.Session.DefaultStore.GetRules
    'Change the rule name as per your actual case
    Set objRule = objRules.Item("Move Mails to Temp")
 
    On Error Resume Next
    'Only work on non-empty Mail folder
    If objCurrentFolder.Items.count > 0 And objCurrentFolder.DefaultItemType = olMailItem Then
       With objRule
            .Enabled = True
            .Execute ShowProgress:=True, Folder:=objCurrentFolder, IncludeSubfolders:=True
       End With
    End If
 
    'Process subfolders recursively
    If objCurrentFolder.folders.count > 0 Then
       For Each objSubfolder In objCurrentFolder.folders
           Call ProcessFolders(objSubfolder)
       Next
    End If
End Sub

VBA Kodu - Tüm Posta Klasörlerinde Belirli Bir Kural Çalıştırın

  1. Bundan sonra, makroya izin verildiğinden emin olarak Outlook makro ayarlarınızı kontrol etmelisiniz.
  2. Sonunda bir deneyebilirsin.
  • "RunSpecificRule_AllMailFolders" alt yordamına tıklamanız yeterlidir.
  • Ardından bu kodu tetiklemek için F5 tuş düğmesine basın.
  • Daha sonra makro hemen çalışacaktır.
  • Tamamlandıktan sonra, aşağıdaki ekran görüntüsü gibi bir mesaj alacaksınız. Kuralın bittiğini ifade eder.Çalıştırma Tamamlandı

Kötü Amaçlı Makrolara Dikkat Edin

Hepimizin bildiği gibi, kötü niyetli e-postalar giderek yaygınlaşıyor. Bu tür e-postalar genellikle kötü amaçlı makrolar taşır. Bu nedenle, Outlook makro güvenlik düzeyinizi düşük olarak ayarlarsanız, gizli virüslere ve kötü amaçlı yazılımlara karşı dikkatli olmalısınız. Ayrıca, güçlü bir PST düzeltme aracına sahip olmak akıllıca olacaktır. DataNumen Outlook Repair. Yapabiliyor PST'yi onar sizin için maksimum veriyi dosyalayın ve ayıklayın.

Yazar Tanıtımı:

Shirley Zhang, bir veri kurtarma uzmanıdır. DataNumendahil olmak üzere veri kurtarma teknolojilerinde dünya lideri olan , Inc. mdf'yi kurtar ve görünüm onarım yazılım ürünleri. Daha fazla bilgi için ziyaret edin www.datanumen.com

Şimdi paylaş:

Yoruma kapalı.