Entwurfsmodus mit VBA deaktivieren
Wie allgemein bekannt ist, wird im Entwurfsmodus kein Programmcode ausgeführt und keine Ereignisse ausgelöst. Folglich lässt sich der Entwurfsmodus auch nicht mittels VBA-Programmcode ausschalten. Doch stimmt das wirklich? Nein!
Es gibt eine Möglichkeit, mit der man den Entwurfsmodus auf indirektem Weg ausschalten kann. Wie oben erwähnt ist der Entwurfsmodus während der Ausführung von VBA-Code nie eingeschaltet, da er beim Start eines Makros automatisch deaktiviert wird. Wir müssen somit einen Weg finden, wie man ein Makro automatisch starten kann, ohne dass dabei der Benutzer involviert ist. Da bei aktiviertem Entwurfsmodus keine Ereignisse ausgelöst werden und somit kein Code in den Ereignisprozeduren wird, muss eine andere Lösung her: Sie heisst OnTime. Mit OnTime kann ein Zeitpunkt definiert werden, zu dem eine bestimmte Prozedur gestartet werden soll. Die Prozedur wird interessanterweise gestartet, auch wenn der Entwurfsmodus aktiviert ist. Das bedeutet, dass nach Setzen des Zeitpunktes der aktivierte Entwurfsmodus automatisch ausgeschaltet wird. Der dazu benötigte Programmcode sieht so aus:
Sub SetDesignModeTimer()
Application.OnTime Now + TimeSerial(0, 0, 10),
"DeactivateDesignMode"
End Sub
Public Sub DeactivateDesignMode()
'Leere Prozedur
End Sub
Führen Sie die Prozedur SetDesignModeTimer und warten Sie 10 Sekunden. Wenn Sie während diesen 10 Sekunden den Entwurfsmodus aktivieren, so wird er nach Ablauf der Zeitspanne automatisch deaktiviert. Beachten Sie, dass die vom Timer aufgerufene Prozedur DeactivateDesignMode leer sein kann (aber nicht muss).
The eXpLorer
Zuletzt aktualisiert am
20.02.2004 / 21:30 Uhr
© Copyright 2002-2004 by Philipp von Wartburg, CH-8917
Oberlunkhofen
Alle Rechte vorbehalten