RibbonX-Workshop - Die Command-Ebene

In diesem Beitrag lernen wir, wie man auf Commandebene Befehle deaktiviert oder umlenkt.

Die Command-Ebene muss zwingend vor dem Ribbon initialisiert werden.

In diesem Beispiel werden folgende Befehle deaktiviert:
Excel-Optionen, Beenden-Schaltfläche.
Schließkreuz, Minimieren, Wiederherstellen der Tabelle und der Hilfebutton.
Die Tastenkombination ALT+F4 wird nicht deaktiviert, die Anwendung kann noch immer über selbige geschlossen werden.

<commands>
    <!-- Deaktiviert die Hilfe -->
    <command idMso="Help" enabled="false"/>
    <!-- Deaktiviert das Schließkreuz -->
    <command idMso="WindowClose" enabled="false"/>
    <!-- Deaktiviert "Wiederherstellen" -->
    <command idMso="WindowRestore" enabled="false"/>
    <!-- Deaktiviert "Minimieren" -->
    <command idMso="WindowMinimize" enabled="false"/>
    <!-- Deaktiviert das Optionsmenü -->
    <command idMso="ApplicationOptionsDialog" enabled="false"/>
    <!-- Deaktiviert die Beenden-Schaltfläche -->
    <command idMso="FileExit" enabled="false" />
</commands> <!-- Ende Command-Ebene -->




Kommen wir nun zum Umlenken eines Befehls auf eine eigene Prozedur. Im Beispiel lenken wir "Speichern" um.

<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
  <commands>
    <command idMso="FileSave" onAction="onAction_Ersatz" />
  </commands>
  
  <ribbon></ribbon>
</customUI>


Public Sub onAction_Ersatz(control As IRibbonControl, ByRef cancelReturn)

Rem Standardbefehl abbrechen 
cancelReturn = True

Rem Eigene Routine 
MsgBox "Dieser Befehl ist hier unzulässig", 64, "Hinweis"

End Sub


Die Tastenkombinationen bleiben weiterhin aktiv. Sie müssen Sie also separat deaktivieren, z.B. über Application.OnTime im Workbook_Activate-Ereignis. Aber bitte vergessen Sie dann nicht, die Tastenkombinationen im Workbook_Deactivate-Ereignis wieder zurückzusetzen.