PDA

Vollständige Version anzeigen : Outlook 2013 Startprozedur reagiert nicht


H_E_K
16.01.2018, 19:33
Hallo!
Ich habe testweise in ThisOutlookSession folgenden Code stehen:
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)
'... hier soll es weiter gehen nach dem Erstellen einer neuen Aufgabe
MsgBox ("Klappt!") 'Testweise
End Sub

Aber nach Erstellen einer neuen Aufgabe passiert rein gar nichts. Ich habe auch schon ein Automakro zu Kalendereinträgen erstellt, das manuell gestartet wunderbar läuft, aber nicht über WithEvents.

Ich muss dazu sagen, dass bei mir die Synchronisierungssoftware "SyncPlus" der Telekom läuft (unverzichtbar), die OL stets im Hintergrund geöffnet hält. Die Application_Startup - Routine kann daher zunächst nicht funktionieren, da OL ja bereits läuft, wenn ich die OL-Benutzeroberfläche starte. Dann müsste die Routine aber doch nach einem Rechnerstart aktiv sein - ist sie aber nicht. Hat jemand eine Idee?

H_E_K
16.01.2018, 21:15
Nach dem Test, die WithEvents-Routine manuell zu starten (was funktionierte), wurde mir klar, dass irgendetwas verhinderte, dass beim OL-Start das Makro aktiv wird. Und das ist tatsächlich SyncPlus, das im Autostart-Ordner liegt und somit vor Outlook gestartet wird. Da es OL aber nur im Hintergrund öffnet, wird die WithEvents-Routine nicht aufgerufen. Wenn ich dann OL starte, starte ich es nicht wirklich (es läuft ja schon), sondern bringe nur die Benutzeroberfläche nach vorne.
Ich habe jetzt folgenden simplen Trick angewendet: Outlook wird ebenfalls per Autostart nach dem Hochfahren des Rechners gestartet, und zwar vor SyncPlus. Das funktioniert zwar einwandfrei, ist aber nicht wirklich elegant. Hat jemand eine alternative Lösung?

halweg
17.01.2018, 08:43
Hallo Hans,
zunächst freue ich mich, dass ich mit meinem Tipps und Vermutungen richtig lag und du jetzt das Problem einkreisen konntest.

Das Autostartmakro kannst du ja im Prinzip jederzeit über eine Tastenkombination starten. Ich würde z. B. meine "Fensterpflege" nehmen und ihr sagen, dass sie beim erstmaligen Erscheinen des Outlook-Hauptfensters eine Tastenkombination senden soll (auf der das Makro liegt). Vielleicht hast du andere Tools, die Outlook einen Send-Befehl zuleiten können.

Leider habe ich immer noch keinen Ansatz, wie ich per "Fernsteuerung" (z. B. aus Word oder aus einem vbs-Skript) eine Outlook-Prozedur starten kann, hab mir schon die Finger wund gegoogelt.

Ich muss noch mal schauen, ob ich mit meiner Sync-Software das gleiche Problem habe. Aber momentan muss ich so oft die Ereignisprozeduren neu starten, dass ich gar nicht mehr weiß, wie das beim Betriebssystemstart ist (der bei mir ungefähr einmal in der Woche stattfindet).

Viele Grüße, Halweg

mumpel
17.01.2018, 10:51
Hallo!


[...] wie ich per "Fernsteuerung" (z. B. aus Word oder aus einem vbs-Skript) eine Outlook-Prozedur starten kann [...]
Garnicht. In Excel gibt es "Application.Run", aber in Outlook gibt es das nicht. In Outlook gibt es zudem außer "Application_StartUp" keine weiteren Autostart-Prozeduren die beim Starten von Outlook ausgeführt werden könnten.




[...] Hat jemand eine alternative Lösung? [...]
Da gibt es keine Alternative. Das Verhalten ist m.E. auch richtig. Denn wenn Outlook schon gestartet ist sind alle Autostartprozeduren abgearbeitet. Wird Outlook fremdgestartet kann es auch passieren dass Ereignisprozeduren nicht ausgeführt werden, was wohl in diesem Fall so zu sein scheint. Beim Synchronisieren werden ja Prozesse/Aufgaben abgearbeitet die interne Prozeduren stören können. Das ist vergleichbar mit SendKeys-Anweisungen. Wenn Du während des Ablaufs von SendKeys-Anweisungen die Maus bewegst kann es passieren dass der Ablauf der Prozedur gestört oder gestoppt wird. VBA ist darauf angewiesen dass während des Ablaufs einer Prozedur keine anderen Aufgaben (Benutzereingaben, Fremdprozesse) stattfinden.

Gruß, René

halweg
17.01.2018, 11:33
Ich muss dazu sagen, dass bei mir die Synchronisierungssoftware "SyncPlus" der Telekom läuft (unverzichtbar), die OL stets im Hintergrund geöffnet hält. Die Application_Startup - Routine kann daher zunächst nicht funktionieren, da OL ja bereits läuft, wenn ich die OL-Benutzeroberfläche starte. Dann müsste die Routine aber doch nach einem Rechnerstart aktiv sein - ist sie aber nicht. Hat jemand eine Idee?
Ich habe noch mal meine Sync-Software (Companion Link) unter die Lupe genommen. Sie ist zum einen etwas zurückhaltender: Outlook wird nicht automatisch gestartet, erst wenn ein Sync fällig ist (und dann auch ohne Startroutine). Dann habe ich den gleichen Effekt - starte ich Outlook manuell, so wird die Startroutine nicht gestartet.
Ich habe für die Startroutine einen Button in der Schnellstartleiste, das aktiviert dann die Routinen.

H_E_K
17.01.2018, 11:46
Leider habe ich immer noch keinen Ansatz, wie ich per "Fernsteuerung" (z. B. aus Word oder aus einem vbs-Skript) eine Outlook-Prozedur starten kann, hab mir schon die Finger wund gegoogelt.

Grüß dich!
Wir hatten hier doch neulich jemanden, der aus Access per VBA auf Outlook zugriff - du erinnerst dich?
Warum verlegst du den VBA-Code nicht in Word oder Excel?
Ich hatte ganz früher (15-20 Jahre her) im Betrieb aus Excel heraus per VBA eine Mailversende-Prozedur geschrieben, bei der - soweit ich mich erinnere - alles so gesteuert werden konnte, wie aus Outlook (das war Office 2000 oder 2003) heraus auch. Nur die Dateianhänge waren schwierig.

mumpel
17.01.2018, 11:48
Die Anhänge sind aber kein großes Problem.

H_E_K
17.01.2018, 11:57
Ich habe für die Startroutine einen Button in der Schnellstartleiste, das aktiviert dann die Routinen.
Naja, dann kann ich das Makro ja gleich manuell anwerfen.
Es hängt wohl auch mit den Arbeitsgewohnheiten zusammen. Ich vermute, bei dir ist OL permanent geöffnet, weil du dauernd Einträge vornimmst. Dann macht es Sinn, das StartUp-Makro per Button zu starten.
Bei mir ist OL aber permanent geschlossen. Aus alter Gewohnheit und sicher übertriebenem Sicherheitsdenken schaue ich mir den Maileingang erst online (Telekom-Account) an, lösche dort schon Spam und unerwünschte Mails und öffne dann erst OL. Dann archiviere ich die Mails per Makro und schließe OL wieder. Aber eben nicht wirklich, weil die Synchronisierungssoftware es im Hintergrund geöffnet hält:
https://www2.pic-upload.de/img/34673196/SyncPlusOL.jpg (https://www.pic-upload.de)
Außerdem poppt bei einem Maileingang eine Meldung rechts unten auf dem Desktop auf, ich verpasse also so schnell nichts.

H_E_K
17.01.2018, 11:58
Die Anhänge sind aber kein großes Problem.

Du, René, das ist so lange her, vielleicht ging es auch dann, ich weiß es nicht mehr.

halweg
17.01.2018, 17:34
Hans, wenn bei dir Outlook sowieso offen ist und auch E-Mails empfängt, dann kannst du es auch "offiziell" offen lassen. Datenschutz- und sicherheitstechnisch sehe ich den Online-Abruf sogar kritischer, weil er hilft, deiner Web-Aktivitäten besser einer (eingeloggten) Identität zuzuordnen.

Ich nutze auch meinen Webmailer (nutze POP3), um Spam auszusortieren (und die Spamfilter anzureichern), aber die "richtige" Mailverwaltung geht eben nur in Outlook, alles andere ist eine Krücke.

Was bei dir auch klappen könnte, wäre, Outlook per Autostart- oder Registry oder sonst wie (siehe Systemkonfiguration) einfach eher (und minimiert) zu starten, als es von "SyncPlus" gebraucht wird.

H_E_K
17.01.2018, 18:06
Hans, wenn bei dir Outlook sowieso offen ist und auch E-Mails empfängt, dann kannst du es auch "offiziell" offen lassen.
Ja, stimmt schon, ist eine reine Angewohnheit.

Datenschutz- und sicherheitstechnisch sehe ich den Online-Abruf sogar kritischer, weil er hilft, deiner Web-Aktivitäten besser einer (eingeloggten) Identität zuzuordnen.

Da bin ich bei der Kombination Firefox & Telekom-Account weniger skeptisch. Bei einem Freemailer wie gmx, googlemail (!), freenet etc. wäre ich viiiiel vorsichtiger. Und Chrome gehört bei mir ans Motorrad, nicht auf den Desktop :grins:

Ich nutze auch meinen Webmailer (nutze POP3), um Spam auszusortieren (und die Spamfilter anzureichern), aber die "richtige" Mailverwaltung geht eben nur in Outlook, alles andere ist eine Krücke.

Jo, mache ich ja auch nicht anders, wobei der Telekom-Spamfilter schon extrem wenig durchlässt.

Was bei dir auch klappen könnte, wäre, Outlook per Autostart- oder Registry oder sonst wie (siehe Systemkonfiguration) einfach eher (und minimiert) zu starten, als es von "SyncPlus" gebraucht wird.
Nun, ich habe mich schon daran gewöhnt, dass Outlook bei jedem Rechnerstart per Autostart öffnet. Das ist ja dann nur ein Klick, es zu schließen. Alles andere ist aufwendiger.