Ich habe einen Outlook-Makro, der Code zum Abrufen von Regeln hat, der auf Outlook 2013 funktioniert, aber nicht auf einem anderen Computer, der Outlook 2016 ausgeführt wird.Outlook 2016 vba Application.Session.Default.GetRules() gibt keine Regeln zurück
Der Code ist:
Set colRules = Session.DefaultStore.GetRules()
For Each oRule In colRules
ruleName = oRule.Name
If Left(ruleName, 21) = "AutoCategorize into *" Then
oRule.Execute (True)
End If
Next
Das Problem nach meinen Debuggen ist, in denen zurück colRules Objekt. On 2016, zeigt es 26 Elemente hat, enthält aber keine: (debug view image in 2016)
auf Outlook 2013, das gleiche Objekt zeigt alle 26 Artikel (Regeln): (debug view image in 2013)
Andere Beobachtungen:
- Der Regelassistent zeigt alle 26 Regeln auf beiden Computern korrekt an.
- Einige der Regeln wurden auf dem Computer mit Outlook 2013 definiert, so dass sie als (für andere Computer) auf dem 2016 Regeln Assistenten angezeigt werden;
- OutlookSpy Store -> Funktionen -> getRules liefert das gleiche Ergebnis: (Bild kann nicht schreiben noch ... nicht genug Ruf)
EDIT - ich den Grund für das Problem gefunden, aber nicht die Lösung ... Der Grund, warum die Dinge nicht funktionieren, ist, weil das Regel-Objekt Regeln "von einem anderen Computer" enthält. Ich löschte alle Regeln, die zum Testen "von einem anderen Computer" markiert wurden, und führte das Makro erneut aus. Jetzt hat es alle verbleibenden Regeln gefunden. Gleiches gilt für OutlookSpy. Also ist etwas in Microsoft-Implementierung von Regeln gebrochen. Natürlich kann ich nicht so bleiben, da es ein Exchange-Postfach ist, hat es tatsächlich die Regeln auch vom anderen Computer entfernt ... Ich habe dies auf einem anderen Konto getestet und habe das gleiche Ergebnis, was die Outlook-API nicht beweisen kann Regeln handhaben. Hat jemand alternative Lösungen oder Workarounds? @Dmitry?
Sehen Sie die Regeln auf der MAPI-Ebene in OutlookSpy (http://www.dimastr.com/outspy)? Wechseln Sie zum Ordner Posteingang, klicken Sie auf die Schaltfläche IMAPIFolder, wechseln Sie zur Registerkarte PR_RULES_TABLE (falls sichtbar). –
Dmitry, ich bin nicht vertraut mit OutlookSpy, aber ich habe es hinzugefügt und folgte Ihren Anweisungen, aber in dem Fenster, das Pops gibt es keine Registerkarte mit diesem Namen. –
Ich fummelte mehr mit OutlookSpy. Wenn ich auf "Speichern" klicke, dann auf der Registerkarte "Funktionen", klicke ich auf "GetRules", ich bekomme ein Fenster, das besagt, dass es 26 Regeln gibt, aber keine von ihnen wird angezeigt. Also ist es im Grunde dasselbe. Ich werde diesen Screenshot zur ursprünglichen Nachricht hinzufügen. –