RibbonX-Workshop - Anzeigefeld (Beschriftungsfeld)

In RibbonX gibt es ein einfaches Control zur Anzeige von Text, das labelControl.

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