Menüband: Unterschied zwischen den Versionen
Pwania (Diskussion | Beiträge) |
Pwania (Diskussion | Beiträge) |
||
(4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
[[Category:vba-wiki]] | |||
== Vorbereitungen == | == Vorbereitungen == | ||
Um eventuelle Fehlermeldungen, welche durch eine fehlerhafte Definition des Menübandes entstehen, angezeigt zu bekommen, nehmen Sie bitte folgende Einstellung in Ihrer Office-Anwendung vor: | Um eventuelle Fehlermeldungen, welche durch eine fehlerhafte Definition des Menübandes entstehen, angezeigt zu bekommen, nehmen Sie bitte folgende Einstellung in Ihrer Office-Anwendung vor: | ||
* ''Datei'', ''Optionen'', ''Erweitert'', ''Allgemein'', ''Fehler des Benutzerflächen-Add-Ins anzeigen'' aktivieren | * ''Datei'', ''Optionen'', ''Erweitert'', ''Allgemein'', ''Fehler des Benutzerflächen-Add-Ins anzeigen'' aktivieren: | ||
[[Datei:Fehler_von_Benutzeroberflächen-Add-ins_anzeigen.png|600px]] | |||
== Wichtigste Grundlagen == | == Wichtigste Grundlagen == | ||
Zeile 233: | Zeile 235: | ||
| Leider funktionieren die Verlinkungen innerhalb der Webseite nicht immer zuverlässig | | Leider funktionieren die Verlinkungen innerhalb der Webseite nicht immer zuverlässig | ||
|-style="vertical-align:top;" | |-style="vertical-align:top;" | ||
| [https://docs.microsoft.com/de-de/openspecs/office_standards/ms-customui/ | | [https://docs.microsoft.com/de-de/openspecs/office_standards/ms-customui/ Offizielle Microsoft Dokumentation] | ||
| englisch | | englisch | ||
| | | | ||
Zeile 578: | Zeile 580: | ||
4. Änderungen speichern, zippen und in die Originaldatei umbenennen. | 4. Änderungen speichern, zippen und in die Originaldatei umbenennen. | ||
3. Testen und fertig! | 3. Testen und fertig! | ||
=== Trenner (menuSeparator) === | |||
Ein einfacher Trennstrich in einem Menü hilft, die einzelnen Funktionen zu gruppieren. | |||
Wenn man einen Trennstrich beschriftet, wird die Gruppierung noch deutlicher. | |||
Allerdings fehlt die Eigenschaft 'Title' bei menuSeparator Controls, uns wird lediglich eine 'getTitle' Funktion angeboten. | |||
'''Wichtig:''' Das menuSeparator Control verfügt nicht über eine 'getVisible' Funktion. Wenn aber alle Elemente nach dem menuSeparator unsichtbar sind, wird es selbst nicht angezeigt. | |||
== Fehlermeldungen == | == Fehlermeldungen == |
Aktuelle Version vom 8. August 2024, 09:42 Uhr
Vorbereitungen
Um eventuelle Fehlermeldungen, welche durch eine fehlerhafte Definition des Menübandes entstehen, angezeigt zu bekommen, nehmen Sie bitte folgende Einstellung in Ihrer Office-Anwendung vor:
- Datei, Optionen, Erweitert, Allgemein, Fehler des Benutzerflächen-Add-Ins anzeigen aktivieren:
Wichtigste Grundlagen
Die Grundstruktur der customUI.xml werden Sie im Beispiel kennenlernen bzw. wird Ihnen freundlicherweise vom CustomUIEditor vorgegeben. Bitte ändern Sie ausschließlich nur solche Werte, deren Auswirkung Sie verstehen und beabsichtigen.
OOXML
Seit Office 2007 wird das Office Open XML Dateiformat eingesetzt. Die Beschreibung, Inhalte, Bilder und Eigenschaften einer Office-Datei werden hierbei in XML- (bzw. Bild-) Dateien gespeichert und anschließend im ZIP-Format komprimiert. Wenn Sie sich diese Struktur ansehen möchten, können Sie einer beliebige Office-Datei (dotm, pptx, xlsm, ...) ein '.zip' anhängen und dann die Datei als ZIP-Datei öffnen:
Die geöffnete Datei sieht in etwa so aus (Beispiel Word Dokument):
Auf oberster Ebene erscheint immer die Datei '[Content_Types].xml', alle weiteren Inhalte sind auf diverse Verzeichnisse aufgeteilt.
Bitte beachten: Die Beziehungen und Zusammenhänge innerhalb der Struktur einer OOXML-Datei folgen sehr strikten Vorgaben und müssen bei Änderungen sehr genau eingehalten werden, sonst kann der Inhalt der OOXML-Datei eventuell nicht mehr von der dazugehörigen Office-Anwendung interpretiert (geöffnet) werden kann.
XML
Wie funktioniert das Menüband?
Das Office Menüband, welches seit Office 2007 verwendet wird, bietet seine Funktionen über Reiter, Gruppen und Knöpfe (Untermenüs, Eingabefelder etc.) an. Diese Struktur ist zwingend vorgegeben -- ein Element, welches auf Benutzereingaben reagiert (wie ein Knopf, ein Eingabefeld etc.) muss sich in einer Gruppe befinden, und jede Gruppe muss in einem Reiter abgelegt sein.
Dabei können Sie auf jeder Ebene ein eingebautes Element der Menüleiste verwenden. Wenn Sie zum Beispiel einen Knopf in einer eigenen Gruppe im Start-Reiter unterbringen möchten, adressieren Sie den Reiter mit
<tab idMso="TabHome">
wobei die nötigen Einstellungen mit den Suchbegriffen 'Liste der idMso' gefunden werden können.
Ein eigener Reiter würde hingegen mit einer eigenen 'id' bezeichnet:
<tab id="tabWorkbookAssistant">
Bitte beachten: Wenn Sie mehrere Dateien öffnen, welche Anpassungen des Menübandes enthalten und die gleiche 'id' verwendet haben, werden die Elemente mehrfach in der Benutzeroberfläche erscheinen!
customUI.xml
Eigene Erweiterungen des Menübandes werden in der in Office 2007 eingeführten XML-Struktur untergebracht. Das neue Dateiformat besteht aus gezippten XML-Dateien, welche die verschiedenen Aspekte der Datei abbilden, wie Eigenschaften, Einstellungen, und Inhalt der Datei. Wenn Sie einer beliebige Office-Datei (docx, xlsm, pptx, ...) ein '.zip' anhängen und diese dann öffnen, sehen Sie genau diese XML-Struktur.
Bitte beachten Sie jedoch, dass Änderungen an den XML-Dateien immer potenziell auch dazu führen können, dass die Datei danach nicht mehr von der Anwendung geöffnet werden kann. Daher sollten Sie vor Änderungen sicherheitshalber immer eine Kopie des Originals anfertigen.
Die Anpassung des Menübandes wird entsprechend in einer eigenen XML-Datei definiert, welches in der oben beschriebenen Struktur untergebracht wird. Die hauptsächlich dafür benötigte Datei heißt 'customUI.xml' -- wie Sie diese anlegen und bearbeiten, erfahren Sie weiter unten.
Wichtige Eigenschaften
id
- Die 'id' ist der intern verwendete Name des Elementes und muss ausdrücklich bei den meisten Elementen angegeben werden
- Ausnahmen: <customUI>, <ribbon>, <backstage>, <tabs>
- Wenn Sie ein eingebautes Element verwenden möchten, geben Sie statt der 'id' die gewünschte 'idMso' an
<button idMso="FilePrintQuick"/>
- Wichtig: Bitte verwenden Sie in der 'id'-Eigenschaft ausschließlich Buchstaben, Ziffern und Unterstriche!
label
- Das 'label' ist der sichtbare Name eines sichtbaren Elementes, wie <tab>, <group>, <button> etc.
- Kein 'label' erhalten unter anderem: <customUI>, <ribbon>, <backstage>, <tabs>
- Hier können beliebige Zeichen, Ziffern etc. angegeben werden
- Wichtig: Wenn Sie Umlaute, Accents oder sonstige Sonderzeichen verwenden, achten Sie zwingend darauf, dass in Ihrem XML-Editor die korrekte Kodierung eingestellt ist (in der Regel 'UTF-8')!
onAction
- Die 'onAction'-Eigenschaft gibt den Namen der Callback-Prozedur an, die beim Betätigen eines Elementes ausgeführt werden soll
- Dieser Name muss der Benennungs-Konvention von VBA folgen (Beginn mit einem Buchstaben, kann Buchstaben, Ziffern und Unterstriche enthalten, Umlaute vermeiden)
- Siehe auch Callback-Prozedur.
Dynamische Eigenschaften
Generell werden die Eigenschaften von Elementen des Menübandes statisch angegeben, wie zum Beispiel die 'id', welche niemals nachträglich geändert werden kann. Andere Eigenschaften können beim Einlesen des Menübandes per Programmierung vorgegeben werden und bleiben danach statisch, wie zum Beispiel die sprachabhängige Beschriftung von Elementen. Eine letzte Gruppe von Eigenschaften kann situationsabhängig immer wieder neue Werte annehmen, wie zum Beispiel die Verfügbarkeit einer Funktion abhängig von der aktuellen Auswahl.
Dynamische Eigenschaften tragen in ihren Namen ein 'get'. Der Wert ist dann der Name der Callback-Prozedur:
Statische Eigenschaft | Dynamische Eigenschaft | Beispiel | Callback-Prozedur |
---|---|---|---|
label | getLabel |
<button id="buttonTest" getLabel="buttonTest_getLabel"/> |
Sub buttonTest_getLabel(control As IRibbonControl, ByRef label) label = "Beschriftung" End Sub |
image | getImage |
<button id="buttonTest" getImage="buttonTest_getImage"/> |
Sub buttonTest_getImage(control As IRibbonControl, ByRef image) image = "EigenesIcon" End Sub |
enabled | getEnabled |
<button id="buttonTest" getEnabled="buttonTest_getEnabled"/> |
Sub buttonTest_getEnabled(control As IRibbonControl, ByRef enabled) If Bedingungerfüllt Then enabled = True End If End Sub |
visible | getVisible |
<button id="buttonTest" getVisible="buttonTest_getVisible"/> |
Sub buttonTest_getVisible(control As IRibbonControl, ByRef visible) If Bedingungerfüllt Then visible = True End If End Sub |
usw. (bitte beachten Sie, dass nicht jede Eigenschaft eine dynamische Entsprechung hat!)
Callbacks
Sogenannte Callback-Prozeduren stellen die Schnittstelle zwischen den in der XML-Struktur definierten Anpassungen des Menübandes und der Programmierung dar. Callbacks werden typischerweise in 'onAction' und dynamischen Eigenschaften verwendet.
Beispiel 'customUI.xml':
<button id="buttonPressMe" label="Press Me" getEnabled="butonPressMe_getEnabled" onAction="buttonPressMe_onAction"/>
Dazu passende Callback-Prozeduren:
Public Sub butonPressMe_getEnabled(ByVal Control As IRibbonControl, ByRef enabled) ' enabled = SollKnopfAktivSein() End Sub
Public Sub buttonPressMe_onAction(ByVal Control As IRibbonControl) ' DiesSollAufKnopfdruckGeschehen End Sub
- Beachten Sie, dass eine Callback-Prozedur bestimmte Übergabeparameter liefert und diese auch erwartet.
- Rückgabewerte werden 'ByRef' übergeben.
- Der Parameter 'Control' enthält unter anderem die 'id' des aufrufenden Elementes und kann somit diesem zugeordnet werden. So können Sie zum Beispiel alle 'getLabel'-Callbacks in einer Prozedur sammeln und anhand der Control.ID feststellen, welcher Text welchem Element zugeordnet werden soll:
Beispiel einer Sammel-Callback-Lösung
Im Beispiel wird zusätzlich zum Namen der Callback-Prozedur dessen Modul angegeben, durch einen Punkt getrennt.
<tab id="tabWorkbookAssistant" getLabel="RibbonLocalization.LocalizeLabel" insertBeforeMso="TabHome" getVisible="RibbonCommands.ControlIsVisible"> <group id="groupColorTools" getLabel="RibbonLocalization.LocalizeLabel" getVisible="RibbonCommands.ControlIsVisible"> <button id="buttonColorDialog" getLabel="RibbonLocalization.LocalizeLabel" onAction="RibbonCommands.ShowColorDialog" getEnabled="RibbonCommands.CanColorElement" /> ...
Im Modul 'RibbonLocalization' befindet sich folgende Callback-Prozedur:
Public Sub LocalizeLabel(control As IRibbonControl, ByRef Label) Label = FindTranslation(control.ID) End Sub
Die 'control.ID' wird dazu verwendet, die passende Beschriftung für das jeweilige Element zu finden.
Anpassbare Bereiche
Folgende Bereiche der Benutzeroberfläche können erweitert und angepasst werden:
Menüband (ribbon)
Das Menüband ist der prominenteste Bereich der Benutzeroberfläche von Office seit Version 2007. Es enthält die Reiter (tabs, tab), welche wiederum einzelne Gruppen (group)enthalten können, in welchen dann die ausführbaren Elemente der Benutzeroberfläche untergebracht werden, wie Knöpfe und Menüs.
Zusätzlich enthält dieser Bereich auch die Schnellzugriffleiste (qat), welche oben links in der Titelleiste angezeigt wird.
Ab Office 2010: Backstage (backstage)
Die Backstage ist der Aufgabenbereich, welcher sich unter dem Reiter 'Datei' öffnet. Standardmäßig enthält er die eigenen Reiter 'Informationen', 'Neu', 'Öffnen', 'Drucken' etc.
Dieser Aufgabenbereich kann sehr stark beeinflusst werden -- Sie können Elemente ausblenden, hinzufügen und bestehenden Elementen neue Aufgaben erteilen.
Bitte beachten: Die Anpassung des Backstages ist erst mit Office 2010 möglich -- sie kann daher nur in einer customUI.xml eingesetzt werden, welche wie folgt eingerichtet ist:
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui"> <backstage> </backstage> </customUI>
Sie müssten entsprechend auch in der .rels-Datei den passenden Eintrag vornehmen.
Bitte beachten
- Seien Sie bei der Benennung der Elemente und der Callback-Prozeduren einheitlich, um später jederzeit nachvollziehen zu können, welcher Knopf welche Calback-Prozedur aufruft.
- Die Callback-Prozeduren können nicht in einem Klassenmodul abgelegt werden!
Zusätzliche Quellen
Link | Sprache | Beschreibung | Anmerkungen |
---|---|---|---|
www.accessribbon.de | deutsch |
|
Leider funktionieren die Verlinkungen innerhalb der Webseite nicht immer zuverlässig |
Offizielle Microsoft Dokumentation | englisch |
|
Seite steht auch nach Umschaltung auf Deutsch nur in englischer Sprache zur Verfügung |
Werkzeuge
CustomUIEditor
Ursprünglich wurde von Microsoft ein Editor speziell zur Bearbeitung des Menübandes zur Verfügung gestellt:
Dieser scheint nicht mit allen Windows-Versionen kompatibel zu sein und wurde seit 2009 (für die Erweiterungen, welche Office 2010 anbietet) nicht weiter entwickelt. Auf Windows 8.1 ist die letzte Version jedoch lauffähig.
Vorteile
- Schnelle und direkte Möglichkeit, Menüband anzupassen
- Enthält einige Beispiele für den Einstieg
- Enthält rudimentäre Prüfung des XML-Codes
- Übernimmt automatisch Einträge in rels-Dateien
- Ermöglicht das direkte Einbinden eigener Icons
Nachteile
- Die Beispiele müssen teilweise angepasst werden, weil sie nur für 2010 geschrieben sind (Office/2009/07 muss heißen Office/2006/01)
- Editor unkomfortabel
- Größere Anpassungen führen zu unwillkürlichem Springen im Editor
- XML muss (von Beispielen abgesehen) selbst formuliert werden (mögliche Elemente und Eigenschaften werden nicht angeboten)
Download und Quelle
Download der aktuellen Version: Datei:OfficeCustomUIEditorSetup.zip
Ursprüngliche Quelle: openxmldeveloper.org
Aufbau und Bearbeitung ohne Hilfsmittel
Diese Beschreibung erläutert den händischen Aufbau eines eigenen Menübandes und setzt voraus, dass Sie die Office-Datei entpacken können und dass Sie einen XML-Editor einsetzen.
Neues Menüband anlegen
Folgende Schritte führen zu einem neu erstellten Menüband. Wenn Sie an einem schon vorhandenen, selbst gebauten Menüband Änderungen vornehmen möchten, sehen Sie bitte weiter unten den Abschnitt Menüband nachbearbeiten.
Arbeitsschritt | Beschreibung | Screenshot / Code |
---|---|---|
Vorbereitungen | Gewünschte Funktionalitäten implementieren und testen. | |
Datei als .*m speichern und schließen | Speichern Sie die Datei in einem der .*m-Formate ab: docm, dotm (Word), xlsm, xlam (Excel) oder pptm, ppam (PowerPoint).
Anschließend schließen Sie bitte die Datei. |
|
Datei in *.zip umbenennen | ||
Datei in *.zip umbenennen | Bestätigen Sie den Dialog mit 'Ja', damit die Datei umbenannt werden kann. | |
ZIP-Datei in ein Verzeichnis entpacken | Entpacken Sie die in der ZIP-Datei enthaltenen Dateien in ein Verzeichnis. | |
ZIP-Datei in ein Verzeichnis entpacken | Standardmäßig wird Ihnen ein Unterverzeichnis mit dem Namen der ZIP-Datei angeboten. | |
Verzeichnis öffnen | Öffnen Sie anschließend das neue Verzeichnis (nicht die ZIP-Datei!)
Die Datei- und Verzeichnisstruktur sollte ähnlich wie hier abgebildet erscheinen. Dieses Beispiel zeigt eine Word-Vorlage, bei Excel bzw. PowerPoint erscheint statt dem Unterverzeichnis 'Word' ein entsprechend anderes Unterverzeichnis. |
|
customUI anlegen | Legen Sie im Basisverzeichnis der XML-Struktur das Verzeichnis 'customUI' an. Erstellen Sie in diesem Verzeichnis eine neue Textdatei und nennen Sie diese in 'customUI.xml' um. | |
customUI.xml öffnen | Öffnen Sie in einem XML-Editor Ihrer Wahl die neue Datei 'customUI.xml'. Sie wird ursprünglich leer sein. | |
customUI.xml Grundstruktur einfügen | Fügen Sie den nebenstehenden Text in Ihre customUI.xml-Datei ein.
Diese beispielhafte Grundstruktur enthält einen neuen Reiter, eine Gruppe und einen Knopf, der die im ersten Arbeitsschritt gezeigte Prozedur aufrufen soll. Achtung: Nach dem Einfügen des Beispielcodes anhand des Screenshots auf Vollständigkeit prüfen und sicherstellen, dass in keinen Namen oder Eigenschaften Leerzeichen oder Zeilenumbrüche erscheinen!!! Bitte beachten: Keine Umlaute oder sonstige Sonderzeichen verwenden (auch nicht in Labels, Screentips usw.), wenn Sie die Dateien mit dem Notepad (Editor) bearbeiten!!! Bitte zusätzlich beachten: Manchmal suchen sich XML-Editoren unpassende Kodierungs-Einstellungen -- stellen Sie sicher, dass bei 'Encoding', 'Character Set' oder ähnlichen Einstellungen die Option 'UTF-8' verwendet wird! |
Vorschau:
<?xml version="1.0" encoding="utf-8"?> <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"> <ribbon startFromScratch="false"> <tabs> <tab id="tabCustom" label="My Custom Tab"> <group id="groupCustom" label="My Custom Group"> <button id="buttonPressMe" label="Press Me" onAction="buttonPressMe_onAction"/> </group> </tab> </tabs> </ribbon> </customUI> |
customUI.xml speichern | Speichern Sie die Änderungen in der Datei 'customUI.xml | |
_rels\.rels öffnen | Die Datei '.rels' im Verzeichnis '_rels' im Notepad oder einem XML-Editor öffnen.
Achtung: Diese Datei niemals umbenennen, um sie in einem XML-Editor zu öffnen!!! Windows wird Ihnen u. U. später die Rückbenennung von '.rels.xml' in '.rels' verweigern!!! |
|
_rels\.rels erweitern | Die neue customUI muss in der '.rels' Datei als neue Relationship (Beziehung) eingetragen werden. Kopieren Sie dazu den nebenstehenden Text in die Datei.
Wichtig: Achten Sie darauf, dass die neue 'Relationship' wie in der Vorschau gezeigt zwischen den 'Relationships'-Tags platziert ist. Um Ihnen eine bessere Übersicht über die Datei zu verschaffen, können Sie zwischen jedes '><' (Größer als / Kleiner als) einen Zeilenumbruch einfügen. Passen Sie die Eigenschaft 'Id' entsprechend der schon vorhandenen Ids an: Wenn die hier verwendete Id 'rId4' schon existiert, verwenden Sie den nächst höhere, noch nicht verwendeten Index. Bitte beachten: Vor 'Type' und vor 'Target' muss ein Leerzeichen stehen! |
Vorschau: Kopiervorlage: <Relationship Id="rId4" Type="http://schemas.microsoft.com/office/2006/relationships/ui/extensibility" Target="customUI/customUI.xml"/> |
Verzeichnis zippen | Alle Verzeichnisse und Dateien im Basisverzeichnis der ursprünglich entzippten Office-Datei wieder zippen. Verwenden Sie hierzu den von Windows angebotenen Zipper, um sicherzustellen, dass hierbei keine später für die Office-Anwendung nicht lesbaren Dateien entstehen. | |
ZIP umbenennen | Benennen Sie die neu gezippte Datei mit der Original-Dateiendung um und verschieben Sie die Datei an ihren Originalplatz.
Wenn Sie darauf hingewiesen werden, dass die Datei durch die neue Endung eventuell unbrauchbar wird, fahren Sie trotzdem mit 'Ja' fort. |
|
Datei öffnen | Öffnen Sie die Datei aus dem Datei-Explorer heraus bzw. starten Sie die Anwendung, um das Add-In zu laden. Wenn eine Fehlermeldung erscheint, bestätigen Sie mit 'Ja', dass Sie fortfahren möchten. | |
Erster Test | Der neue Reiter erscheint am rechten Ende des Menübandes. Wenn Sie auf den neuen Knopf drücken, erscheint eine Fehlermeldung: | |
onAction-Prozedur (Callback) | Wenn der Knopf 'buttonPressMe' gedrückt wird, erwartet dieser, eine öffentliche Prozedur mit dem in der Eigenschaft 'onAction' angegebenen Namen vorzufinden.
Wichtig: Diese Callback-Prozedur erhält ein Control als Übergabeparameter. Dieser muss korrekt angegeben werden, sonst kann kein Aufruf an die Callback-Prozedur erfolgen! Bitte beachten: Denken Sie daran, dass Sie statt 'MessageboxSuccess' die Prozedur eintragen, welche Sie beim Drücken des Knopfes aufrufen möchten! Zur Information: In Excel kann das Callback auch als 'Private Sub' angelegt werden, in PowerPoint muss es 'Public' sein. |
Kopiervorlage: Public Sub buttonPressMe_onAction(ByVal Control As IRibbonControl) MessageboxSuccess End Sub |
Menüband nachbearbeiten
Die Voraussetzung für diese Schritte ist, dass Sie schon ein benutzerdefiniertes Menüband angelegt haben, denn dann können Sie viele der oben beschriebenen Arbeitsschritte abkürzen. So ist es zum Beispiel nicht mehr nötig, die .rels-Datei anzupassen.
Wie Sie ein Menüband von Grund auf neu aufbauen finden Sie im Abschnitt Neues Menüband anlegen.
Im Anschluss können Sie die soeben durchgeführten Änderungen testen.
Eigene Icons hinzufügen
Diese Beschreibung gilt für das Hinzufügen eigener Icons. Wenn Sie vorhandene (in der Office-Anwendung verwendete) Icons anzeigen möchten, verwenden Sie bitte die 'imageMso'-Eigenschaft.
Da Sie für die folgenden Schritte neue Verzeichnisse und Dateien anlegen müssen, empfehlen wir, wie oben beschrieben die ZIP-Datei in ein neues Verzeichnis zu extrahieren und dort die Änderungen vorzunehmen (anstatt die Datei nur umzubenennen und die Änderungen direkt in der ZIP-Datei vorzunehmen).
Arbeitsschritt | Beschreibung |
---|---|
Bildvorgaben |
|
Unterverzeichnis 'images' anlegen | Legen Sie im Verzeichnis 'customUI' ein neues Unterverzeichnis 'images' an. |
Icon-Dateien in 'images' kopieren | Kopieren Sie die gewünschten Icon-Bild-Dateien in das Verzeichnis 'images' |
Unterverzeichnis '_rels' anlegen | Legen Sie im Verzeichnis 'customUI' ein neues Unterverzeichnis '_rels' an. |
Datei 'customUI.xml.rels' anlegen | Legen Sie im neuen Unterverzeichnis '_rels' eine leere Textdatei 'customUI.xml.rels' an. |
Einträge in 'customUI.xml.rels' |
Grundstruktur: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"> </Relationships> Relationship für jedes Icon: <Relationship Id="ColorDialogChart" Target="images/ColorDialogChart.png" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/image"/>
|
Icon einsetzen | In der 'customUI.xml' können die hinzugefügten Bilder wie folgt eingesetzt werden:
image="Id" wobei die Id aus dem Eintrag der Relationship stammt, zum Beispiel <button id="buttonColorChart" label="Diagramm färben" image="ColorDialogChart" onAction="buttonColorChart_onAction"/> |
Liste interessanter Eigenschaften und Einstellungen
Reiter
Reiter an erster Stelle platzieren
insertBeforeMso="TabHome"
Interaktive Elemente
Interaktive Elemente sind solche Elemente der Menüleiste, welche der Anwender auswählen kann, um etwas zu bewirken, wie Knöpfe und Menüs. Im Gegensatz dazu stehen Reiter und Gruppen, welche als Container für interaktive Elemente dienen.
Größenangaben
Die Standardgröße ist 'normal', muss nicht angegeben werden und entspricht einer drittel Zeile.
size="normal"
Wenn ein Element eine gesamte Spalte in einer Gruppe einnehmen soll, geben Sie die Größe 'large' an.
size="large"
Beschriftung und zusätzliche Hilfestellung
label="Beschriftung" screentip="Nähere Beschreibung" supertip="Ausführliche Beschreibung ... . Und welche durch Leerzeilen gegliedert werden kann!"
Tipp: Mit können Sie in einem 'supertip' einen Zeilenumbruch erzeugen.
Achtung:' Das 'kaufmännische Und' (&) spielt in XML und im Menüband jeweils eine Sonderrolle, daher muss dieses bei Labels, Screentips und Supertips wie folgt angegeben werden:
label="Vater &&
Sohn"
Hierbei wird das '&' selbst durch '&' ersetzt, weil es im XML ein besonderes Zeichen ist. Wegen der Sonderrolle im Menüband muss es dann zusätzlich noch verdoppelt werden!
Icons
Das Menüband bietet zwei Möglichkeiten, Icons anzuzeigen:
- Sie können eigene Icons einsetzen (siehe eigene Icons hinzufügen)
- Sie können vorhandene Anwendungsicons verwenden
Um Anwendungsicons zu verwenden, gehen Sie wie folgt vor:
1. Kennzeichner finden
- In 'Datei', 'Optionen', 'Menüband anpassen' suchen Sie in der Liste von Befehlen den gewünschten Befehl, dessen Icon Sie verwenden möchten.
- Wenn Sie den gewünschten Befehl mit der Maus berühren (Mouseover), erscheint eine Direkthilfe, welche den aktuellen Reiter und den Namen des Befehls anzeigt.
- Außerdem erscheint in diesem Hilfetext hinten in runden Klammern der interne Kennzeichner des Befehls. Notieren Sie diesen Kennzeichner.
2. Öffnen Sie die Datei 'customUI.xml' wie oben beschrieben und fügen Sie dem entsprechenden Element folgende Eigenschaft hinzu:
imageMso="Kennzeichner"
4. Änderungen speichern, zippen und in die Originaldatei umbenennen. 3. Testen und fertig!
Ein einfacher Trennstrich in einem Menü hilft, die einzelnen Funktionen zu gruppieren.
Wenn man einen Trennstrich beschriftet, wird die Gruppierung noch deutlicher.
Allerdings fehlt die Eigenschaft 'Title' bei menuSeparator Controls, uns wird lediglich eine 'getTitle' Funktion angeboten.
Wichtig: Das menuSeparator Control verfügt nicht über eine 'getVisible' Funktion. Wenn aber alle Elemente nach dem menuSeparator unsichtbar sind, wird es selbst nicht angezeigt.
Fehlermeldungen
- Fehler sichtbar machen
- 'Datei', 'Optionen', 'Erweitert', 'Allgemein', 'Fehler von Benutzeroberflächen-Add-Ins anzeigen'
Manchmal kann die Datei, in der Sie Änderungen am Menüband vorgenommen haben, nicht mehr geöffnet werden bzw. Sie erhalten Fehlermeldungen, wenn Sie sie öffnen. Diese können auch dann auftreten, wenn Sie nur kleine Änderungen an der 'customUI.xml'-Datei einer eben noch funktionsfähigen Version vorgenommen haben.
Bei gravierenden Fehlern, wie falsch vergebenen oder falsch geschriebenen Eigenschaften in der Datei 'customUI.xml' oder fehlenden Referenzen in der '.rels'-Datei, werden Sie den Fehler finden und beseitigen müssen.
Bei kleineren Problemen, die unwillkürlich beim erneuten Zippen der OOXML-Datei auftreten können, kann die Anwendung selbst versuchen, die Inhalte wiederherzustellen:
Besonderheiten bei Word
Wenn die Probleme mit dem Menüband mit einer globalen Vorlage bestehen, erscheint folgende Fehlermeldung:
Öffnen Sie in diesem Fall die globale Vorlage und verfahren Sie wie im Folgenden beschrieben. Wenn Sie versuchen, die Datei aus der Liste der 'zuletzt verwendeten Dokumente' zu öffnen, kann folgende weitere Fehlermeldung erscheinen:
Öffnen Sie in diesem Fall die Datei direkt aus dem Datei-Explorer.
Datei reparieren lassen
Wenn Reparatur-Bedarf besteht, werden folgende Meldungen angezeigt:
Wenn Sie die Details anzeigen lassen:
Bestätigen Sie mit 'OK'.
Bestätigen Sie mit 'Ja', damit der Inhalt wiederhergestellt werden kann.
Testen Sie nun alle Änderungen und speichern Sie gegebenenfalls die neu erstellte Datei: