Kapitel 15: Anwendungsdesign
Aktualisieren der Multifunktionsleiste per VBA-Code
Das vorherige Beispiel funktioniert zwar auf den ersten Blick, doch wann und wie kann man die Beschrif-
tung aktualisieren (für die Uhrzeitanzeige sicher unbedingt erforderlich) oder die Inhalte anderer Steuer-
elemente per VBA beeinflussen?
Hier wird es etwas komplizierter. Folgende Schritte sind nötig:
Sie richten eine Callbackroutine beim Laden des Dokuments ein. Dazu erweitern Sie die XML-Defini-
tion wie folgt:
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="MyOnLoad">
<ribbon startFromScratch="false">
...
Speichern Sie einen Verweis auf das zentrale Ribbon-Objekt mittels globaler VBA-Callbackroutine:
Option Compare Database
Option Explicit
Die globale Variable:
Public myRibbon As IRibbonUI
Die Callbackroutine:
Sub MyOnLoad(ribbon As IRibbonUI)
Set myRibbon = ribbon
End Sub
Über die gespeicherte Referenz können Sie jederzeit eine Aktualisierung anfordern (damit werden auch
die Callbackroutinen des betreffenden Controls abgearbeitet):
Sub OnButtonClick(Control As IRibbonControl)
MsgBox "Ich wurde angeklickt ..."
myRibbon.InvalidateControl "Button1"
End Sub
Ausgangspunkt diese Anforderung könnte ein Timer, das Öffnen eines Formulars oder ein Klick auf
Formularschaltflächen sein.
Damit dürften Sie einen ersten Überblick über das Erstellen neuer Registerkarten mit grundlegender Funk-
tionalität gewonnen haben.
Dass es jetzt noch jede Menge weiterer Controls (CheckBoxen, DropDowns, Menüs, Eingabefelder etc.)
gibt, die wiederum spezifische Eigenschaften aufweisen, dürfte nach einem Blick in die vordefinierten
Registerkarten schnell ersichtlich sein. Eine komplette Aufzählung aller Eigenschaften und Funktionalitäten
würde sicher den Rahmen dieses Kapitels sprengen. Aus diesem Grund beschränken wir uns in den folgen-
den Abschnitten auf die wichtigsten Steuerelemente und deren Funktionalität.
970
BEISPIEL
labelControl-Steuerelement
Mit diesem recht trivialen Control können Sie einfache Texte in der Multifunktionsleiste anzeigen.
Interessant sind eigentlich nur die Attribute label (der sichtbare Text) sowie visible bzw. die korrespondie-
renden Callbacks (siehe Tabelle 15.2).
Anzeige zweier Beschriftungen
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon startFromScratch="false">
<tabs>
<tab id="Tab1" label="DOKO Registerkarte">
<group id="Group1" label="Buchbeispiel Gruppe" supertip="Hier ist der Screentip">
<labelControl id="Label1" label="Eine Beschriftung" />
<labelControl id="Label2" label="Und gleich nochmal" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>
Abbildung 15.43 Das Endergebnis
Die wichtigsten Callback-Routinen für das Steuerelement sind getLabel und getVisible, deren Definition
finden Sie in der Übersicht auf Seite 1018. Ein entsprechendes Beispiel für die Verwendung von getLabel
finden Sie auf Seite 969.
button-Steuerelement
Einen ersten Kontak mit diesem Steuerelement hatten Sie ja bereits in der vorhergehenden Abschnitten,
über die Verwendung brauchen wir Sie als VBA-Programmierer sicher nicht extra aufzuklären.
Die Multifunktionsleiste bietet vier verschiedene Varianten von Schaltflächen an:
nur kleines Bild
kleines Bild und Text
nur großes Bild
großes Bild und Text
Steuern können Sie das Aussehen über die Attribute label und size, wie es das folgende Beispiel zeigt.
971
Programmieren der Multifunktionsleiste
BEISPIEL
HINWEIS
BEISPIEL
Kapitel 15: Anwendungsdesign
Die vier Varianten bei den Schaltflächen:
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon startFromScratch="false">
<tabs>
<tab id="Tab1" label="DOKO Registerkarte" insertAfterMso="TabCreate">
<group id="Group1" label="Buchbeispiel Gruppe" supertip="Hier ist der Screentip">
<button id="Button1" imageMso="Risks" />
<separator id="Separator1" />
<button id="Button2" imageMso="Risks" label="Text und Bild"/>
<separator id="Separator2" />
<button id="Button3" imageMso="Risks" size ="large"/>
<button id="Button4" imageMso="Risks" label="Text und Bild groß" size ="large"/>
</group>
</tab>
</tabs>
</ribbon>
</customUI>
Nach dem Zuweisen der Definition mit Hilfe des Testprogramms dürften folgende Schaltflächen eingeblen-
det werden:
Abbildung 15.44 Die angezeigten Schaltflächen
Für die Trennung der einzelnen Schaltflächen haben wir zusätzlich das separator-Steuerelement verwendet.
Zuweisen von Bildern zur Laufzeit
Vermutlich werden Sie mit den von Microsoft mitgelieferten Grafiken, die Sie per imageMso abrufen kön-
nen, nicht auskommen. Aber auch für diesen Fall ist vorgesorgt, mit den Callback-Methoden loadImage
bzw. getImage stehen Ihnen zwei wesentlich flexiblere Varianten zur Verfügung.
Bilder aus einem Verzeichnis verwenden (
loadImage)
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" loadImage="cbLoadImage">
<ribbon startFromScratch="false">
<tabs>
<tab id="Tab1" label="DOKO Registerkarte" insertAfterMso="TabCreate">
<group id="Group1" label="Buchbeispiel Gruppe" supertip="Hier ist der Screentip">
<button id="Button1" image="camera.bmp" size ="large" />
<button id="Button2" image="memory.bmp" size ="large" />
<button id="Button3" image="printer.bmp" size ="large" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>
972

Get Microsoft Office Access 2007-Programmierung - Das Handbuch now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.