RibbonX-Workshop - Schaltflächen
Option Private Module
Public objRibbon As IRibbonUI
Public Sub onload(ribbon As IRibbonUI)
Set objRibbon = ribbon
End Sub
Sub Button1_OnAction(control As IRibbonControl)
If ThisWorkbook.Sheets("Tabelle1").Columns("A:A").EntireColumn.Hidden = False Then
ThisWorkbook.Sheets("Tabelle1").Columns("A:A").EntireColumn.Hidden = True
MsgBox "Spalte A wurde ausgeblendet", vbOKOnly + vbInformation, "Hinweis"
Else
ThisWorkbook.Sheets("Tabelle1").Columns("A:A").EntireColumn.Hidden = False
MsgBox "Spalte A wurde eingeblendet", vbOKOnly + vbInformation, "Hinweis"
End If
End Sub
Sub Button2_getLabel(control As IRibbonControl, ByRef label)
If ThisWorkbook.Sheets("Tabelle1").Columns("B:B").EntireColumn.Hidden = False Then
label = "Spalte B eingeblendet"
Else
label = "Spalte B ausgeblendet"
End If
End Sub
Sub Button2_OnAction(control As IRibbonControl)
If ThisWorkbook.Sheets("Tabelle1").Columns("B:B").EntireColumn.Hidden = False Then
ThisWorkbook.Sheets("Tabelle1").Columns("B:B").EntireColumn.Hidden = True
objRibbon.Invalidate
MsgBox "Spalte B wurde ausgeblendet", vbOKOnly + vbInformation, "Hinweis"
Else
ThisWorkbook.Sheets("Tabelle1").Columns("B:B").EntireColumn.Hidden = False
objRibbon.Invalidate
MsgBox "Spalte B wurde eingeblendet", vbOKOnly + vbInformation, "Hinweis"
End If
End Sub
Anschließend beenden Sie Excel und Öffnen die Datei mit dem CustomUI-Editor. Fügen Sie in das Codefenster den folgenden Code ein. <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="onload">
<ribbon startFromScratch="true">
<tabs>
<tab id="tab01" label="Schaltflächen">
<group id="grp01" label="Spalte A" >
<button id="tgb01" label="Spalte A" imageMso="ExchangeFolder"
onAction="Button1_onAction" size="large"/>
</group>
<group id="grp02" label="Spalte B" >
<button id="tgb02" getLabel="Button2_getLabel" imageMso="ExchangeFolder"
onAction="Button2_onAction" size="large"/>
</group>
</tab>
</tabs>
</ribbon>
</customUI>
Speichern Sie die Änderungen und schließen den Editor. Öffnen Sie die Datei mit Excel. Jetzt sollte ein Ribbon mit zwei Schaltflächen erscheinen. Die erste blendet Spalte A im wechsel ein oder aus. Die Schaltflächenbeschriftung ändert sich nicht. Schaltfläche 2 blendet Spalte B im Wechsel ein oder aus, wobei die Schaltflächenbeschriftung den jeweiligen Zustand anzeigt.
Schaltfläche 1:
Diese Schaltfläche hat eine feste Beschriftung.
Schaltfläche 2:
Diese Schaltfläche bezieht ihre Beschriftung aus dem Makro "Button2_getLabel".
Beschreibung:
id: Legt die control.ID fest.
onAction: Gibt das zu startende Makro an
label: Beschriftung der Schaltfläche (für Schaltfläche 1)
getLabel: Gibt das Makro an, welches die Beschriftung anhand bestimmter Einstellungen einträgt. Wichtig: Es ist immer nur eines möglich. Endweder label oder getLabel.
imageMso: Gibt das Icon an, welches genutzt werden soll.
size: gibt die Größe der Schaltfläche an. large=groß. normal=klein