Auto_Open im Add-In unterdrücken

11/09/2009 - 20:07 von Thomas Gahler | Report spam
Guten Abend zusammen

Ich habe mir ein Add-In (.xla) erstellt. Darin hat es ein Auto_Open(), das
meine Umgebung initialisiert. Dazu gehört unteranderem eine Klasse zur
Überwachung der Ereignisse in Excel. Innerhalb dieser Klasse ist das
Ereignis _WorkbookOpen() implementiert.

In der Excel-Hilfe habe ich folgendes gefunden «[...]Verhindern der
automatischen Ausführung von Makros beim Starten von Excel [...] Halten Sie
beim Starten von Excel die UMSCHALTTASTE gedrückt, um zu verhindern, dass
Makros automatisch ausgeführt werden. [...]»

Nur irgendwie klappt das nicht so ganz, denn beim Starten von Word wird das
Add-In geladen und Auto_Open ausgeführt auch wenn ich die Shift-Taste
gedrückt halte.
Das Ereignis wird natürlich ebenfalls gefeuert, wenn ich die Shift-Taste
gedrückt halte.

Und jetzt meine Frage:
- Wie kriege ich es hin, dass ich mein Excel ohne aktives Add-In starten
kann oder wie kann ich das feuern des Ereignisses unterdrücken?

Besten Dank für alle Tipps.



Thomas Gahler
MVP für Word
Co-Autor von »Microsoft Word-Programmierung.
Das Handbuch« (MS Press)


- Windows Vista (SP1), Office 2007 (SP1)
 

Lesen sie die antworten

#1 Andreas Killer
12/09/2009 - 08:07 | Warnen spam
Thomas Gahler schrieb:

In der Excel-Hilfe habe ich folgendes gefunden «[...]Verhindern der
automatischen Ausführung von Makros beim Starten von Excel [...] Halten
Sie beim Starten von Excel die UMSCHALTTASTE gedrückt, um zu verhindern,
dass Makros automatisch ausgeführt werden. [...]»

Nur irgendwie klappt das nicht so ganz, denn beim Starten von Word wird
das Add-In geladen und Auto_Open ausgeführt auch wenn ich die
Shift-Taste gedrückt halte.


Hmm, kann ich nicht sagen wieso, aber Du kannst über eine API ja
selber kucken ob die Shift-Taste gedrückt ist, kuck mal hier:

http://www.vbarchiv.net/api/api_get...state.html

Andreas.

Declare Function GetAsyncKeyState Lib "user32.dll" _
(ByVal vKey As Long) As Long

Function ShiftPressed() As Boolean
ShiftPressed = CBool(GetAsyncKeyState(&H10) And &H8000)
End Function

Ähnliche fragen