Ribbon dynamisch zur Laufzeit aktualisieren
Wenn Sie eine mehrsprachige Anwendung erstellt haben und Sie die Ribbon Labels dynamisch ändern wollen müssen Sie beim Ribbon Ladevorgang das Ribbon cachen. Dafür verweden Sie den Callback onLoad des <customUI> Elementes.
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="CallbackOnLoad"> </customUI>
In ein Standardmodul:
Option Compare Database Option Explicit Public gobjRibbon As IRibbonUI Sub CallbackOnLoad(ribbon As IRibbonUI) ' Eine Kopie von RibbonUI cachen. Set gobjRibbon = ribbon End Sub
Sie haben nun die Möglichkeit innerhalb Ihrer Datenbank ein einzelnes Ribbon Control mittels gobjRibbon.InvalidateControl "ControlID" zu aktualisieren bzw. das ganze Ribbon mittels gobjRibbon.Invalidate.
Tritt ein nicht behandelter Fehler in der Datenbank auf geht der Bezug auf das IRibbonUI verloren.
Ein Beispiel wie dieses Problem gelößt werden kann finden Sie im Download "Ribbon aktualisieren trotz Fehler".
Siehe auch Beispieldatenbank und Excelarbeitsmappe DynamicRibbon.