Dieses Mal ein etwas komplizierteres Thema, eurer Engagement in den anderen Threads macht mir Mut. Deshalb versuche ich es erst mal im deutschen Unterforum.
Es geht um die Fernsteuerung von MS Office Programmen aus Autohotkey heraus, insbesondere um Word, Excel und Outlook. Das ist ja grundsätzlich über den Zugriff auf das Objektmodell möglich. Für mich ist das noch neu, bisher habe ich für solche Fernsteuerungen VBS-Skripte genutzt (um z. B. auf Windows-Systemebene ein konkretes Outlook-Element anhand seiner Element-ID zu verlinken.
Mit AHK habe ich dagegen bisher vor allem Tastenkombinationen an Office-Programme gesendet, um dort Befehle auszulösen.
Nun gibt es ein Problem, welches ich über die VBS-Skripte bislang nicht gelöst bekam:
Ich kann zwar auf das VBA-Objektmodell zugreifen, nicht jedoch auf diesem Weg ein zur jeweiligen Anwendung gehörendes Skript starten. Das stört mich insbesondere bei Outlook, weil ich dort eben nicht ohne weiteres VBA-Skripte auf Tastenkombinationen legen kann.
Kennt jemand dieses Problem? Gibt es über den Autohotkey-Zugriff auf das VBA-Objektmodell die Möglichkeit, VBA-Skripte z. B. in Outlook zu starten?
Besten Dank fürs Mitdenken im Voraus!
Office per AHK fernsteuern
Moderator: jNizM
Re: Office per AHK fernsteuern
Ich habe keine Erfahrung mit Outlook-COM, aber in Excel scheint es möglich zu sein, VBA-Makros zu starten (siehe z. B. hier: https://www.autohotkey.com/boards/viewtopic.php?f=76&t=70860&p=306291#p306291).
Re: Office per AHK fernsteuern
Falls sich keine 'Deutsche Lösung' abzeichnet, @flyingDman scheint mir einer der Experten für Office-Com zu sein!?
PS. Gabs nicht mal einen speziellen Thread (scripts&functions?/tutorials?) der speziell Office Com Support zum Thema hatte? Evtl @jeeswg's ??
PS. Gabs nicht mal einen speziellen Thread (scripts&functions?/tutorials?) der speziell Office Com Support zum Thema hatte? Evtl @jeeswg's ??
Re: Office per AHK fernsteuern
Danke fürs schelle Rückmelden.
@gregster:
Ich habe das hier probiert:und es funktioniert.
Mithatte ich leider kein Glück, der Interpreter meckert hier bereits über das RUN ("Error: 0x80020006 - Unbekannter Name"), nicht über einen falschen Skript-Namen.
@BoBo: Ich hatte diesen Beitrag gefunden. Auch unter den sonstigen Outlook-Beiträgen im englischen Forum konnte ich auf Anhieb nichts finden, was mir weiterhilft. Aber ja, das hier ist wohl sehr speziell, da werde ich dort nochmal fragen müssen.
Mir würde es auf jeden Fall viel helfen, da ich ca. 10 VBA Makros über AHK aufrufe und das über die Fernbedienung der Schnellstartleiste sehr umständlich ist.
@gregster:
Ich habe das hier probiert:
Code: Select all
eo := COMOBJACTIVE("Excel.Application")
eo.RUN("PERSONL.xlsm!test")
Mit
Code: Select all
oo := COMOBJACTIVE("Outlook.Application")
oo.RUN("VbaProject.OTM!test")
@BoBo: Ich hatte diesen Beitrag gefunden. Auch unter den sonstigen Outlook-Beiträgen im englischen Forum konnte ich auf Anhieb nichts finden, was mir weiterhilft. Aber ja, das hier ist wohl sehr speziell, da werde ich dort nochmal fragen müssen.
Mir würde es auf jeden Fall viel helfen, da ich ca. 10 VBA Makros über AHK aufrufe und das über die Fernbedienung der Schnellstartleiste sehr umständlich ist.
Re: Office per AHK fernsteuern
Die direkte Antwort auf die Frage hier lässt ahnen, das du final um eine Konvertierung (bzgl Outlook) nicht herum kommen wirst: https://www.autohotkey.com/boards/viewtopic.php?t=7671
"Ca. 10 VBAs" sind allerdings eine überschaubare Menge. Sollte doch machbar sein. Good luck
PS. der eigentliche Grund für die fehlende run-option in Outlook scheint das Sicherheitskonzept zu sein (Unterbindung von "nach Hause/draussen telefonieren").
https://bettersolutions.com/outlook/add-ins/vba-code.htm
"Ca. 10 VBAs" sind allerdings eine überschaubare Menge. Sollte doch machbar sein. Good luck
PS. der eigentliche Grund für die fehlende run-option in Outlook scheint das Sicherheitskonzept zu sein (Unterbindung von "nach Hause/draussen telefonieren").
https://bettersolutions.com/outlook/add-ins/vba-code.htm
Re: Office per AHK fernsteuern
Besten Dank, BoBo, fürs recherchieren, irgendwie hast du da mehr Erfolg als ich. Das hilft mir schon mal ungeheuer zu wissen, was nicht geht.
Leider kann ich nicht einfach meine 10 Outlook Befehle nach AHK umsetzen, da dahinter ein ganzes Biotop mit ca. 100 Einzelmodulen und darunter vielen Ereignisprozeduren steht.
Ich hatte übrigens auch schon versucht, per Ereignisprozedur Outlook fernzusteuern (Unterordner ferngesteuert anlegen und in Outlook auf dieses Ereignis reagieren), leider auch nicht sehr erfolgreich.
Leider kann ich nicht einfach meine 10 Outlook Befehle nach AHK umsetzen, da dahinter ein ganzes Biotop mit ca. 100 Einzelmodulen und darunter vielen Ereignisprozeduren steht.
Ich hatte übrigens auch schon versucht, per Ereignisprozedur Outlook fernzusteuern (Unterordner ferngesteuert anlegen und in Outlook auf dieses Ereignis reagieren), leider auch nicht sehr erfolgreich.
Re: Office per AHK fernsteuern
Der zweite Link enthält code um 'trusted' COM features zu etablieren. Sollte Outlook zulassen deine VBA's hinter solchen Buttons zu parken, und sich diese mitunter sogar als (hidden!?) stand-alone Menuleiste separieren lassen, wärst du doch wieder im Geschäft, oder??
Re: Office per AHK fernsteuern
Ja, da muss man sich erst mal reinlesen, ist vielleicht doch zu kompliziert, nur um die Tastenkürzel zu sparen.
Re: Office per AHK fernsteuern
... was meinst du denn damit? Welche Office-Version hast du denn? Ich habe auch einige VBA-Scripte in der Schnellstartleiste (Office 365) aufgenommen (Menüband anpassen - Neue Gruppe ...und dorthin die VBA-Macros). Diese kannst du dann noch umbenennen und mit einem Icon versehen. Um den Zugriff nun über AHK zu ermöglichen, notierst du dir die folgenden manuellen Schritte (bei mir sind die Macros im Menüband in der Gruppe "Start" angelegt):Mir würde es auf jeden Fall viel helfen, da ich ca. 10 VBA Makros über AHK aufrufe und das über die Fernbedienung der Schnellstartleiste sehr umständlich ist.
- drücke einmal kurz auf die Alt-Taste (alle Menüpunkte bekommen ein dunkles Rechteck mit einem Buchstaben darin)
- drücke auf "r" (ruft die Gruppe "Start" auf)
- drücke auf "y"(ruft die die benutzerdefinierte Untergruppe auf)
- drücke auf eine Zahl von 1-... (das entsprechende Macro wird aufgerufen).
In deinem AHK-Script sendest du die oben notierten Tasten einfach mit Send oder SendInput, ggf. baust du eine "Verlangsamung" in deinem Script ein (SetBatchLines, SetKeyDelay, Sleep) und weist dem Ganzen eine Tastenkombination deiner Wahl zu.
Herzliche Grüße aus dem Rheinland
Lucky Joe
Lucky Joe
Re: Office per AHK fernsteuern
Hallo LuckyJoe,
Danke fürs Einklinken. Ich habe Office 10.
Du beschreibst so ziemlich genau meinen aktuellen Ansatz, wobei ich tatsächlich die Schnellstartleiste und nicht wie im Folgenden von dir beschrieben die Menüleiste verwende.
Der Ansatz hat aber mehrere Schwächen:
Ich muss z. B. für jedes aufzurufende VBA-Makro vorab einen Eintrag in der Schnellstartleiste vornehmen. Diese ist bei Outlook, zumindest bei mir, individuell für verschiedene Outlook-Situationen (Listenansicht, Mail geöffnet, Ereignis geöffnet, ...), so dass ich manche Einträge z. B. 5 Mal separat hinzufügen muss. Dabei muss ich dann auch noch die Reihenfolge kontrollieren, damit das Makro in verschiedenen Situationen unter dem gleichen Tastenkürzel aufgerufen werden kann.
Weiterhin schließt das Senden einer Taste die Übergabe von Parametern aus.
Allerdings finde ich es ein Stück weit beruhigend, dass du offensichtlich bislang auch keinen besseren Ansatz gefunden hast.
Am meisten stört es mich momentan übrigens bei den zahlreichen Word-Bearbeitungsfunktionen innerhalb z. b. einer Mail. Da nutze ich identische Tastenkürzel wie in Word, um z. B. einem Text eine Farbe zuzuweisen, nur dass diese momentan in Outlook eben diese AHK-Klickorgien statt einfach ein Makro aufzurufen.
Danke fürs Einklinken. Ich habe Office 10.
Du beschreibst so ziemlich genau meinen aktuellen Ansatz, wobei ich tatsächlich die Schnellstartleiste und nicht wie im Folgenden von dir beschrieben die Menüleiste verwende.
Der Ansatz hat aber mehrere Schwächen:
Ich muss z. B. für jedes aufzurufende VBA-Makro vorab einen Eintrag in der Schnellstartleiste vornehmen. Diese ist bei Outlook, zumindest bei mir, individuell für verschiedene Outlook-Situationen (Listenansicht, Mail geöffnet, Ereignis geöffnet, ...), so dass ich manche Einträge z. B. 5 Mal separat hinzufügen muss. Dabei muss ich dann auch noch die Reihenfolge kontrollieren, damit das Makro in verschiedenen Situationen unter dem gleichen Tastenkürzel aufgerufen werden kann.
Weiterhin schließt das Senden einer Taste die Übergabe von Parametern aus.
Allerdings finde ich es ein Stück weit beruhigend, dass du offensichtlich bislang auch keinen besseren Ansatz gefunden hast.
Am meisten stört es mich momentan übrigens bei den zahlreichen Word-Bearbeitungsfunktionen innerhalb z. b. einer Mail. Da nutze ich identische Tastenkürzel wie in Word, um z. B. einem Text eine Farbe zuzuweisen, nur dass diese momentan in Outlook eben diese AHK-Klickorgien statt einfach ein Makro aufzurufen.
Who is online
Users browsing this forum: No registered users and 46 guests