PDA

Vollständige Version anzeigen : Outlook Fernsteuerung deaktiviert Ereignisprozeduren


halweg
16.01.2018, 12:31
Hallo Forengemeinde,
ich befürchte, das es hier nicht viele gibt, die Outlook auf VBA-Ebene aus anderen Anwendungen aufrufen. Aber das Forum hat mich immer wieder positiv überrascht. :)

Also es geht um Folgendes:
Zum einen habe ich in Outlook Ereignisprozeduren aktiviert. Das sieht vereinfacht so aus (ich habe mal die Bearbeitung von "Aufgaben" in Outlook genommen, das unten genannte Problem tritt aber auch bei anderen Items auf):Private WithEvents Aufgaben As Outlook.Items

Sub Application_Startup()
Set Aufgaben = Session.GetDefaultFolder(olFolderTasks).Items
End Sub

Sub Aufgaben_ItemAdd(ByVal neue_Aufgabe As Object)
... meine Verarbeitung nach dem Erstellen einer Aufgabe ...
End Sub
Das funktioniert und ist mir eine wichtige Hilfe bei der täglichen Arbeit.

Nun habe ich auch vbs-Skripte, die von außen auf Outlook zugreifen. Zum Beispiel öffnet mir Dim outlookobjekt, zeitstempel, ein_element, letztes_element
Set outlookobjekt = createObject("Outlook.Application")
For Each ein_element In outlookobjekt.GetNamespace("MAPI").GetDefaultFolder(13).Items
If ein_element.LastModificationTime > zeitstempel Then
zeitstempel = ein_element.LastModificationTime
SET letztes_element = ein_element
End If
Next
letztes_element.displaymeine zuletzt geänderte Aufgabe.
Auch das funktioniert und ist sehr hilfreich. Und auch hier wäre es im Zweifelsfall egal, ob ich über ein VBA-Skript der über eine andere Office Anwendung auf Outlook zugreife.

Das Problem ist nun, dass, immer wenn ich extern mit dem Skript auf Outlook zugreife, meine Zuordnung, also Set Aufgaben = Session.GetDefaultFolder(olFolderTasks).Itemsoffensichtlich verlorengeht. D. h. meine Ereignisprozeduren springen nicht mehr an (alle, nicht nur die für Aufgaben). Ich konnte schon feststellen, dass das an der Anweisung letztes_element.display liegt. D. h., immer wenn ich extern ein Outlook-Element in einem "Inspektor" aufrufe (egal welcher Art das Element ist), verliere ich meine Zuordnungen. Sonst nicht.

Hat jemand eine Idee
(1) woran das liegen könnte,
(2) ob man das vermeiden kann oder
(3) wie man Outlook (sozusagen die "Mutter-Applikation") dazu bringen könnte, dass es den "externen Eingriff" erkennt und die unter Application_Startup vermerkten Zuordnungen erneut vornimmt.

Besten Dank im Voraus allen, die sich in dieses komplizierte Thema hineindenken.

halweg
16.01.2018, 20:20
Inzwischen habe ich herausbekommen, dass das deaktivieren der Startprozeduren nichts mit der "Fernsteuerung" zu tun hat.
es ist vielmehr ein Problem beim Anzeigen eines Item übe die .display-Methode. Weiter bin ich dadurch aber noch nicht.