RibbonX-Workshop - Anzeigefeld (Beschriftungsfeld)
Sie können es mit festen (statischem) Text füllen, zum Beispiel zur Kennzeichnung eines anderen Controls.
Ein einfaches Beispiel für die statische Anzeige.
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="onLoad_labelControl">
<ribbon startFromScratch="false">
<tabs>
<tab id="tab0" label="labelControl">
<group id="grp0" label="labelControl">
<labelControl id="lbc0" label="Feld 1" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>
Sie können es auch dynamisch füllen (z.B. in Abhängigkeit zu einem Zelleninhalt) und somit zur Statusanzeige nutzen. In diesem Beispiel nutzen wir einen Zellinhalt. Bei Änderung in Zelle B1 wird in Zelle A1 der Inhalt angepasst, anschließend das Ribbon neu initialisiert.
Der RibbonX-Code:
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="onLoad_labelControl">
<ribbon startFromScratch="false">
<tabs>
<tab id="tab0" label="labelControl">
<group id="grp0" label="labelControl">
<labelControl id="lbc0" getLabel="getLabel_labelControl" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>
Der VBA-Code für das Menüband:
Option Private Module
Option Explicit
Public objRibbon As IRibbonUI
Public Sub onLoad_labelControl(ribbon As IRibbonUI)
Set objRibbon = ribbon
End Sub
Public Sub getLabel_labelControl(control As IRibbonControl, ByRef controlText)
controlText = ThisWorkbook.Sheets("Tabelle1").Range("A1").Value
End Sub
Der Code für den Tabellenbereich:
Private Sub Worksheet_Change(ByVal target As Range)
If target.Address <> "$B$1" Then Exit Sub
If target.Value < 20 Then
Range("A1").Value = "Zu wenig"
ElseIf target.Value > 20 And target.Value < 40 Then
Range("A1").Value = "Ausreichend"
Else
Range("A1").Value = "Sehr gut"
End If
objRibbon.InvalidateControl "lbc0"
End Sub