VBA: Button, wechsle Dich!

Format-Schaltflächen ökonomisch programmieren

Von: Lorenz Hölscher
Stand: 4. Mai 2011
Anmelden um Kommentare zu schreiben

Downloads zu diesem Beitrag

Über den Autor: Lorenz Hölscher

bild80517

Lorenz Hölscher ist freiberuflicher Dozent, Berater und Programmierer mit Schwerpunkt Anwendungs-Programmierung. Vorrangig widmet er sich Access, Word und Excel sowie begleitenden grafischen Arbeiten. Er legt viel Wert auf benutzerfreundliche Oberflächen und ordentliches Design in Optik und Programmierung. Zu Hilfe kommen ihm da seine langjährigen "branchenfremden" Erfahrungen als Architekt, Layouter und Designer.

Lorenz Hölscher bietet eigene Hilfeseiten an und hat bei Microsoft Press mehrere Bücher veröffentlicht zu Access 2007, Access 2007 VBA, Word 2007 VBA und Access 2010.

Beiträge des Autors als Atom-Feed Atom-Feed: Neues von akademie.de

Spezielle Schaltflächen

(Um-)Schaltflächen einfügen

Anders als Sie vielleicht vermuten, handelt es sich bei den hier eingesetzten Schaltflächen nicht um die üblicherweise verwendeten Befehlsschaltflächen. Diese werden nämlich angeklickt und springen dann wieder in den optisch ungeklickten Zustand zurück.

Da es sich bei der Formatierung um ein Umschalten (z.B. Fett ein/aus) handelt, sollten Sie auch die passenden Umschaltfelder (engl. toggle buttons) benutzen. Sie sehen gleich aus, verhalten sich aber anders. Wenn ein Benutzer diese anklickt, bleiben sie gedrückt. Erst mit dem nächsten Klick springen sie wieder heraus.

Fügen Sie also auf Ihrem Dialog-Entwurf neben einem Eingabefeld das gewünschte Paket an (Um-!)Schaltflächen ein, die hier tglFett, tglKursiv und tglUnterstrichen heißen.

Entwurf des übersichtlichen Dialogs

Es ist egal, in welcher Höhe die Schaltflächen liegen, denn diese wird durch das benutzerseitige Aktivieren eines Eingabefelds ja zukünftig immer angepasst. Wie bei Symbolleisten üblich, können Sie auch die formatierte Beschriftung der Schaltfläche ihrer Funktion anpassen. Außerdem sollten Sie in deren ControlTipText-Eigenschaft im Klartext ihre Funktion nennen.

Unterstrich funktioniert nicht?

Wenn Sie die Beschriftung der letzten Schaltfläche mit der Font-Eigenschaft auf Unterstrichen ändern, werden Sie wahrscheinlich keine Unterstreichung sehen. Da der Unterstrich sonst nicht zu sehen ist, müssen Sie deren Höhe von normalerweise 18 auf mindestens 19 erhöhen.

Damit die Schaltflächen nun neben dem aktiven Eingabefeld stehen, muss deren Top-Eigenschaft nur den gleichen Wert haben wie diejenige des Eingabefelds. Der Code für HoleButtons erweitert sich also:

Private Sub HoleButtons()
	m_strNameAktiv = Mid(Me.ActiveControl.Name, 4)
	Set m_ctlEdit = Me.Controls("edt" & m_strNameAktiv)

	With Me.tglFett
		.Top = m_ctlEdit.Top
	End With
	With Me.tglKursiv
		.Top = m_ctlEdit.Top
	End With
	With Me.tglUnterstrichen
		.Top = m_ctlEdit.Top
	End With
End Sub

Sie können den Dialog jetzt schon mit F5 starten und prüfen, ob die Schaltflächen ihre Position anpassen.

Diese Seite ist für Mitglieder von akademie.de reserviert.

Möchten Sie die Mitgliedschaft 14 Tage kostenlos testen und den Beitrag komplett lesen?

Ich bin bereits Mitglied
Jetzt Probemitglied werden
Ich kann in den 14 Tagen Probezeit formlos z.B. per E-Mail stornieren. Wenn ich das nicht tue, entscheide ich mich für ein