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.