VBA: Echte und unechte Schaltflächen

Die Standard-Schaltflächen

Bisher noch keine Bewertungen für diesen Artikel.

Die Standard-Schaltflächen

Schon die Schaltflächen für OK und Abbrechen sollten sorgfältig eingestellt werden. Geübte Benutzer erwarten schließlich, dass ein Dialog mit der Return-Taste bestätigt und mit der Escape-Taste abgebrochen werden kann.

Die Schaltfläche 'OK'

Stellen Sie also für die OK-Schaltfläche die Default-Eigenschaft auf True. Dann wird diese mit einem etwas dickeren Rand angezeigt. Je nach Einstellung Ihres Maustreibers wird der Mauszeiger beim Erscheinen des Dialogs auch direkt darauf positioniert.

56936_default01.png

Default-Schaltfläche und nicht Default-Schaltfläche

Das Auslösen dieser Schaltfläche per Return-Taste funktioniert allerdings nur, wenn auf dem Dialog nicht gerade Textfelder aktiv sind, welche Return als Zeilenumbruch akzeptieren. Da wird Windows mal wieder von seiner ewigen Unentschlossenheit eingeholt: Die (Return-)Taste kann sowohl für eine Bestätigung als auch für das Einfügen eines Zeilenumbruchs verwendet werden.

Die Schaltfläche 'Abbrechen'

Wenn Sie die Cancel-Eigenschaft für die Abbrechen-Schaltfläche auf True stellen, reagiert diese automatisch auf die Escape-Taste. Das gilt auch dann, wenn der Fokus gar nicht auf der Schaltfläche selbst liegt.

Beide Schaltflächen sollten typischerweise den Dialog schließen; daher sehen die Prozeduren wie im folgenden Code aus:

Private Sub btnAbbrechen_Click()
	Unload Me
End Sub

Private Sub btnOK_Click()
	'beliebiger Code hier...
	Unload Me
End Sub

Nur für die OK-Schaltfläche wird vor dem Entladen des Dialogs noch der jeweils notwendige Code ausgeführt.

Die Schaltfläche 'Übernehmen'

Relativ häufig finden sich in Dialogen inzwischen Übernehmen-Schaltflächen, die im Grunde nur OK-Schaltflächen ohne Schließen sind. Die Programmierung ändert sich dann lediglich geringfügig wie im folgenden Code:

Private Sub btnAbbrechen_Click()
	Unload Me
End Sub

Private Sub btnOK_Click()
	AbschlussAktion
	Unload Me
End Sub

Private Sub btnUebernehmen_Click()
	AbschlussAktion
End Sub

Private Sub AbschlussAktion
	'beliebiger Code hier...
End Sub

Dabei werden die von der OK- und der Übernehmen-Schaltfläche ausgeführten Aktionen einfach in eine eigene Prozedur (hier mit dem beliebigen Namen AbschlussAktion) ausgelagert und von beiden dann aufgerufen. Damit ist sichergestellt, dass in beiden Fällen dasselbe ausgeführt wird.