Ein- oder Ausblenden von Add-In-Befehlen auf einer benutzerdefinierten Registerkarte

Die dynamische Sichtbarkeit des Menübands hilft, das Menüband aufzuräumen. Wenn nur die Add-In-Befehle angezeigt werden, die für die einzelnen Benutzer wichtig sind, sind diese Befehle leichter zu finden. Nachdem sich ein Benutzer angemeldet hat, kann Ihr Add-In beispielsweise nur die Funktionen anzeigen, die für diesen Benutzer gelten.

Hinweis

In diesem Artikel wird gezeigt, wie Sie die Sichtbarkeit von Add-In-Befehlen auf einer benutzerdefinierten Registerkarte verwalten können. Weitere Informationen zum programmgesteuerten Aktivieren oder Deaktivieren von Befehlen, ohne sie im Menüband auszublenden, finden Sie unter Ändern der Verfügbarkeit von Add-In-Befehlen.

Unterstützte Office-Anwendungen und Anforderungssatz

Für das Festlegen der Sichtbarkeit von Add-In-Befehlen auf benutzerdefinierten Registerkarten ist RibbonApi 1.3-Unterstützung erforderlich. Dieses Feature wird in Excel, PowerPoint und Word unterstützt.

Unterstützte Steuerungen

In der folgenden Tabelle sind die Menübandsteuerelemente aufgeführt, deren Sichtbarkeit auf einer benutzerdefinierten Registerkarte geändert werden kann.

Menübandsteuerelemente Support
Schaltflächen Unterstützt
Gruppen Unterstützt
Menus Unterstützt
Menüpunkte Nicht unterstützt

Hinweis

Informationen zum Konfigurieren einer benutzerdefinierten Registerkarte, sodass sie nur in bestimmten Kontexten angezeigt wird, finden Sie unter Erstellen benutzerdefinierter kontextbezogener Registerkarten in Office-Add-Ins.

Testen eines vollständigen Add-In-Beispiels

Um die Sichtbarkeit von Steuerelementen auf einem Menüband zu testen, probieren Sie das Beispiel Steuerelemente auf einer benutzerdefinierten Registerkarte des Menübands ein- oder ausblenden aus.

Konfigurieren einer freigegebenen Laufzeit

Um die Sichtbarkeit eines Steuerelements oder einer Gruppe programmgesteuert zu ändern, muss Ihr Add-In eine freigegebene Laufzeit verwenden. Anleitungen finden Sie unter Konfigurieren Ihres Office-Add-Ins für die Verwendung einer freigegebenen Runtime.

Festlegen der anfänglichen Sichtbarkeit im Manifest

Hinweis

Die Konfiguration der anfänglichen Sichtbarkeit wird nur in einem Add-In unterstützt, das das einheitliche Manifest für Microsoft 365 verwendet.

Standardmäßig sind Schaltflächen, Gruppen und Menüs auf einer benutzerdefinierten Registerkarte sichtbar, wenn die Office-Anwendung gestartet wird. Um ein Steuerelement anfänglich auszublenden, legen Sie seine "visible" Eigenschaft auf falsefest. Die Position der "visible" Eigenschaft im Manifest hängt vom Steuerelement ab.

Im folgenden Beispiel wird eine Beispielberichtsgruppe und ihre Schaltfläche "Bericht anzeigen " so konfiguriert, dass sie beim Starten des Add-Ins sichtbar ist. Die Schaltfläche "Bericht exportieren " in derselben Gruppe ist zunächst ausgeblendet.

"extensions": [
    {
        "ribbons": [
            {
                "tabs": [
                    {
                        "id": "Contoso.UserToolsTab",
                        "label": "User tools",
                        "groups": [
                            {
                                "id": "Contoso.ReportingGroup",
                                "label": "Reporting",
                                "controls": [
                                    {
                                        "id": "Contoso.ViewReportButton",
                                        "type": "button",
                                        "label": "View report",
                                        "icons": [
                                          {
                                            "size": 16,
                                            "url": "icon_16.png"
                                          },
                                          {
                                            "size": 32,
                                            "url": "icon_32.png"
                                          },
                                          {
                                            "size": 80,
                                            "url": "icon_80.png"
                                          }
                                        ],
                                        "supertip": {
                                            "title": "View report",
                                            "description": "View report"
                                        },
                                        "actionId": "viewReport",
                                        "visible": true
                                    },
                                    {
                                        "id": "Contoso.ExportReportButton",
                                        "type": "button",
                                        "label": "Export report",
                                        "icons": [
                                          {
                                            "size": 16,
                                            "url": "icon_16.png"
                                          },
                                          {
                                            "size": 32,
                                            "url": "icon_32.png"
                                          },
                                          {
                                            "size": 80,
                                            "url": "icon_80.png"
                                          }
                                        ],
                                        "supertip": {
                                            "title": "Export report",
                                            "description": "Export report"
                                        },
                                        "actionId": "exportReport",
                                        "visible": false
                                    }
                                ],
                                "visible": true
                            }
                        ]
                    }
                ]
            }
        ]
    }
]

Programmgesteuertes Ändern der Sichtbarkeit

Wenn Sie die Sichtbarkeit einer Schaltfläche, eines Menüs oder einer Gruppe zur Laufzeit ändern möchten, erstellen Sie ein RibbonUpdaterData-Objekt , das Folgendes angibt.

  • Die IDs des Steuerelements und der übergeordneten Gruppe und Registerkarte, sofern zutreffend. Die IDs müssen mit denen übereinstimmen, die im Manifest deklariert sind.
  • Die Sichtbarkeit des Steuerelements.

Übergeben Sie dann das RibbonUpdaterData-Objekt an die Office.ribbon.requestUpdate-Methode .

Tipp

Vermeiden Sie beim Start, requestUpdate aufzurufen, wenn das Manifest bereits die gewünschte Sichtbarkeit angibt. Um die Sichtbarkeit mehrerer Steuerelemente zu ändern, schließen Sie sie in ein RibbonUpdaterData-Objekt ein, und rufen Sie requestUpdate einmal auf. Auf diese Weise wird verhindert, dass das Menüband flackert.

Ein- oder Ausblenden einer Schaltfläche oder eines Menüs

Um die Sichtbarkeit einer Schaltfläche oder eines Menüs festzulegen, konfigurieren Sie die Office.Control.visible Eigenschaft. Das folgende Beispiel zeigt eine Schaltfläche. Dasselbe Muster gilt für ein Menüsteuerelement.

async function setButtonVisibility(visible: boolean) {
    const button: Office.Control = {
        id: "Contoso.ExportReportButton",
        visible: visible
    };
    const group: Office.Group = {
        id: "Contoso.ReportingGroup",
        controls: [button]
    };
    const tab: Office.Tab = {
        id: "Contoso.UserToolsTab",
        groups: [group]
    };
    const ribbonUpdater: Office.RibbonUpdaterData = { tabs: [tab] };

    await Office.ribbon.requestUpdate(ribbonUpdater);
}

Ein- oder Ausblenden einer Gruppe

Verwenden Sie die Office.Group.visible Eigenschaft, um die Sichtbarkeit einer Gruppe festzulegen. Im folgenden Beispiel werden eine Gruppe und alle darin enthaltenen Steuerelemente ein- oder ausgeblendet.

async function setGroupVisibility(visible: boolean) {
    const group: Office.Group = {
        id: "Contoso.ReportingGroup",
        visible: visible
    };
    const tab: Office.Tab = { id: "Contoso.UserToolsTab", groups: [group] };
    const ribbonUpdater: Office.RibbonUpdaterData = { tabs: [tab] };

    await Office.ribbon.requestUpdate(ribbonUpdater);
}

Tipp

Die Microsoft 365-Anwendung steuert, wann das Menüband aktualisiert wird. Die requestUpdate-Methode stellt eine Updateanforderung in die Warteschlange und löst sie Promise auf, sobald die Anforderung in die Warteschlange eingereiht wird, nicht wenn das Menüband aktualisiert wird.

Siehe auch