Office 201x - Schatleistensymbole hinzufügen/ändern

cumulonimbus8

Fleet Admiral
Registriert
Apr. 2012
Beiträge
19.475
Moin!

Gibt es Möglichkeiten eigene »Icons für die Symbolleiste« den jüngsten Office-Versionen zu verinnerlichen?

In den alten konnte man frei editieren, in Libre/OpenOffice wenigstens Fertiges importieren. Eigene Makros die man da und dort zufügt werden durch das nutzlose Sammelsurium genauso gut erkenntlich als wenn ich PAPL-Wenn beibehalte…

CN8
 
Hallo CN8,

beschreib doch mal genauer:
Erstens gibt es Unterschiede zwischen den Versionen. Zweitens: Was ist eine Symbolleiste? In meinem Word 10 gibt es Menüband, Stellstartleiste, aber Symbolleiste ist m. E. nicht eindeutig. Und was ist "PAPL-WENN"?

Ansonsten: Das Gestalten eigener Bilderchen geht nur mit extra Tools, falls du z. B. das Menüband meinst. Sonst gibt es da nur die fertigen zum Verwenden.
 
beschreib doch mal genauer
Office 2010 (ich), 2013 (Büro), 2016 (Büro & ich). Alle die wären relevant.
Menüband und Schnellzugriff werfe ich in den selben Topf da sie aus der selben Quelle schöpfen.

Welche Tools sind das die eigene «Icons» (was weiß ich, »Schaltflächensymbole«?) einzubinden erlauben und welche taugen was?

CN8


PS: Wenn du ein Makro hinzufügt besteht das Symbol aus einer Raute (auf Spitze) und zwei Rechtecken, von den Seitenspitzen der Raute führen Linien zu den Rechtecken. Das ist die Symbolik im PAPL, ProgrammAblaufPLan, für eine WENN-Entscheidung. Ein recht treffendes Symbol.
 
Lang leben die Abkürzungen ;)
Es gibt da ein AddOn, RibbonX, mit dem man anpassen kann. Und wohl noch ein paar andere Tools. Mir war es auch gelungen, über importierte Makros (aus der alten .dot-Datei) Bilder der 2002er Makros zu übernehmen.

Beide Wege waren für mich aber doch zu umständlich, so dass ich jetzt eher mit den vorhandenen Bilderchen arbeite. Zumal für mich eine übersichtlich verwaltbare und übertragbare Tastensystematik deutlich wichtiger ist, ich blende das Menüband häufig aus, es nimmt ohnehin zu viel Platz weg.
 
Tasten habe ich an PhraseExpress und AutoIt abgetreten, hier muss das Auge die Führung übernehmen. ;)

Nun lüge ich, aber die alten DOTs habe ich weder vor Jahren bei O10 noch jüngst bei O16 einzuklinken gewollt. 16 hat eine neue Registerkarte aufgemacht, aber das war nicht sehr handlich, also begnügte ich mich mit dem Import der Exporte als reiner Code.

Das Tool/AddOn will ich mir mal ansehen. Aber dass es da immer noch keine Ansätze gibt..? MSO scheint was für Amateure geworden zu sein, nicht für Profis die effizient arbeiten wollen.

CN8
 
Ja, das Ändern der Icons ist echt kompliziert geworden.
Aber als AutoIt-Nutzer solltest du ohnehin besser mit Tasten fahren. Bei mir sind Office-Kombinationen und AHK-Tasten ganz gut kombiniert, dank AHK ist es mir gelungen, die praktischen Doppeltasten von Word (z. B. ALT-Kombinationen fürs Formatieren, ALT+x,... fürs Zeichen formatieren, ALT+a,... fürs Absatz formatieren usw.) für alle anderen Office-Programme einheitlich zu übertragen.
In Word selbst nutze ich ein Tastenbelegungsmakro (funktioniert versionsübergreifend), so dass ich in Kombination von MS Office und AHK nicht nur freie Wahl bei der Tastenbelegung habe sondern vor allem die Tastenbelegung gut kombinieren kann.
 
Es geht anders. Weder besser noch schlechter, sondern einfach anders. Dafür aber auch integriert und administrativ leicht handhabbar.
Mindestens brauchst du den Custom UI Editor. Mit diesem kannst du Vorlagendateien dotm/dotx/xltx sowie xlam öffnen und einen Custom XML Part für die Ribbonoberfläche erzeugen.
Weil der Editor zum Arbeiten Mist ist, lade dir noch ein Visual Studio runter. Dessen Codehilfen erkennen auch das Fluent UI XML und schlagen dir meistens die passenden Tags für den XML Code vor. Der Editor hat eine Validierung drin und sagt dir ob der Code passt.

Als Zielsystem legst du dir eine zentrale dotm/xlam an in der die gesamte Ribbon-Funktionalität sowie alle anderen VBA-Routinen liegen. Diese kommt in einen vertrauenswürdigen Pfad um die Makrosicherheit zu gewährleisten.
Vorlagen die eigene Buttons haben sollen - zB eine Briefvorlage mit "Absender aktualisieren" bekommen nur den Custom XML Part über den Editor, jedoch keinen VBA Code. Die Vorlage ruft dann den RibbonHandler in der zentralen dotm auf.

Der Vorteil daran ist:
- Office entläd Funktionalitäten wenn die Vorlage geschlossen wird
- Externe Kunden erhalten Dokumente ohne VBA Code oder sichtbare Elemente im Ribbon.

Die Icons kommen als PNG24 mit Transparenz über den Custom UI Editor in die jeweilige Vorlage und werden im Code über image=Bildname" eingebunden.

Wenn du richtig faul sein willst, lade dir meinen VBA Kram bei imaginado runter und nimm das auseinander. Da ist ein umfänglicher XML Teil drin, aber ohne Backstage-Ansicht oder Schnellstartleiste. Die kann man aber einfach einfügen.
Zudem ist ein fertiger RibbonHandler mit Reaktivierung nach VBA-Crash enthalten den du benutzen kannst.
 
Vielleicht finde ich dazu mal Zeit. Angst vor so was habe ich keine.
Dass aber nicht einfach ein Container mit Grafiken angehängt werden kann ist schon mal ein Klops.

Allerdings begreife ich das Vorgehensschema nicht wirklich. Ich will per se kein eigenes Ribbon hinzufügen das ich, so lese ich es, vorher fertig konfigurieren muss, sondern live Makros (oder vorgefertigte Funktionen) mit erkennbaren «Icons» versorgen.

CN8
 
Der Container hat Vor- und Nachteile. Eine Ressourcen-dll mit Icons ergibt Sinn wenn du separate Icons für helle und dunkle Themes vorhalten willst. AutoCAD hat das so gelöst.
Die in die Vorlagen integrierten Icons können im Gegenzug nicht vergessen werden, der Endbenutzer muss nur eine Datei bekommen und alles läuft.

Das Schema ist WPF und XAML entlehnt. Es gibt einen Teil der die Oberfläche beschreibt und eine Funktionalität darunter. Die Oberfläche löst Ereignisse im Code aus oder holt sich rückwärts per Callback Änderungen aus dem Code um sie anzuzeigen.
Ein Ribbon musst du auch nicht bereitstellen, allerdings ist es sinnvoll dem Benutzer eine brauchbare Oberfläche zu liefern.
Vorlagen gehören meiner Meinung nach in eine eigene Gruppe im Backstage Bereich, die Befehle zur Inhaltsbearbeitung in ein separates Ribbon. Wenn man es vermittelt bekommt, kann man eigene Befehle auch in bestehende Ribbons integrieren. Und eine Schnellstartleiste kannst du auch hinzufügen meine ich, allerdings habe ich dafür bisher keinen Sinn gesehen da es ein Bereich ist den der Nutzer gestalten können soll.

De facto sind Code und Oberfläche getrennte Arbeitsschritte. Entweder du baust erst den Code und nimmst dir einen vorhandenen Button (ich nehme gerne den AboutButton während der Entwicklung) und baust danach den XML Code mit Icon, oder umgedreht. Erst XML erweitern, Icons dazu, dann Codegerüst bauen, dann bei beiden Wegen zum Abschluss scharf schalten über den Ribbon Handler.
 
Da muss ich mir Vorräte anlegen und mich übers Fest mal durchfuttern. :)
CN8
 
Gibt es denn keine einfache Möglichkeit, nur die mitgelieferten Bilderchen zu ändern oder zu erweitern, indem man direkt auf diese Ressource zugreift.
 
Warum willst du denn die mitgelieferten Icons ändern. Die ändern sich doch sowieso pro Version.
Einfach eigene machen und die benutzen.
Und mir ist für VBA kein anderer Weg bekannt wie du sonst eigene Icons einbinden kannst. Also ja bestimmt irgendwie im Callback getImage und dann ins Dateisystem verweisen. Aber darin sehe ich kein Sinn da du sowieso den restlichen XML-Code erzeugen musst.
Fluent UI und VBA sind relativ eingeschränkt muss man zugeben, im VSTO ist wohl mehr möglich. Das habe ich aber erst rudimentär probiert, ist das VOrhaben für nächstes Jahr.

Die zentrale Vorlage bzw die angehängten laufen dann aber auch von 2010-365 problemlos. Habe ich zumindest seit gut 2 Jahren so im Einsatz.
 
Was ich meine, sind die Bilder, die man ab Werk den Buttons frei zuordnen kann. Die müssten ja in einer dll-Datei oder so stehen. Und wenn man diese Datei austauscht, könnte man quasi seinen eigenen Bildersatz verwenden, ohne sich mit in das Ribbon-Objektmodell einarbeiten zu müssen.
Und auch wenn das für mich nicht relevant ist, hätte ich gehofft, dass man diese Icon-Datei dann auch über die Versionen retten könnte. Meinerseits muss ich befürchten, dass Microsoft bis zu meinem nächsten Office-Wechsel (vielleicht dann Office 2025 oder so) auch schon wieder die grundsätzliche Vorgehensweise ändert.
 
Ja halwe, das wird sicherlich so sein mit der dll. Allerdings bringt dir das nur mehr Arbeit und keinen Mehrwert. Warum willst du denn die integrierten Icons austauschen. Die Nutzer kennen diese und suchen danach.
Zudem gibt es zB zwischen 2010 und 2013 neue Icons die vorher nicht da waren, oder wegen der 32px RibbonIcons werden neue größere Versionen eingebaut die dann kein Pixelmatsch wie in 2010 sind.

Wir hatten bei AutoCAD auch mal so einen Ansatz, ich kann dir nur dringend davon abraten. Benutze grundsätzlich was das System dir bietet und hänge deine eigene Programmierung (und Oberfläche) hinten ran. Sofern es keine passenden Icons von der Anwendung selber gibt, oder die kacke Aussehen (2010/2013), dann baue immer eigene Icons und binde die für deine Vorlagen ein. Das funktioniert idR über mehrere Versionen sehr gut. Sowohl bei AutoCAD als auch bei Office.
 
Danke, aber das bringt mich jetzt nicht weiter. Außerdem habe ich immer noch den Eindruck, dass wir von verschiedenen Dingen reden. Die Icons, die ich meine, haben nichts mit den ab Werk verwendeten zu tun und dienen ausschließlich der Bebilderung eigener Befehle. Deshalb vermute ich sie auch in einer separaten Ressource. Klar ließe sich diese nur auf einem PC nutzen, aber das Verteilen von womöglich makrobehafteten Vorlagen gehört ohnehin nicht zum guten Ton.

Und genau diese Datei müsste man eben um eigene Bilder ergänzen, was zum Beispiel bei einer dll jeder bessere Iconeditor schaffen dürfte.
 
Ab 2007 sind die Icons in dem Template, dass die Icons auch anzeigt und irgendwo im Programm anzeigt (Ribbon, Backstage, ...).
Es gibt bei VBA keine separate Ressourcendatei die man da jetzt einbinden würde. Also, sagen wir so, vielleicht geht das mit dem Verweis auf eine Bibliothek und dann holt sich das Callback das vielleicht daher. Aber das ist relativ umständlich.
Du tust eigentlich was ganz einfaches.

- Du schreibst eine Public Sub MeinTollerBefehl() in zB einer zentralen Makrodatei.
- Jetzt muss der Befehl in die Oberfläche, und zwar nicht im Ribbon AddIn sondern in dein eigenes Ribbon.
- Du schließt die dotm, rufst den Custom Ui Editor auf, fügst den 2010er XML Code ein und baust damit ein Ribbon auf - ganz einfach.
- Jetzt fehlt ein Icon. Entweder du nimmst in XML imageMso="" oder du fügst über den Custom UI Editor eine 24bit PNG ein. Diese PNG hat eine ID (= Dateiname) - also "MeinTollerBefehlIcon".
- Im Custom UI Editor trägst du jetzt statt imageMso="" > image="MeinTollerBefehlIcon" ein.
- Du validierst den XML Code, speicherst und schließt. Sobald du die dotm jetzt öffnest, taucht dein neues Ribbon auf. Word sucht automatisch in den Ressourcen nach dem Icon zum Befehl und findet es anhand der ID.

>> Damit hast du Code und Oberfläche (+ Icon) in einer Datei. Diese kannst du jetzt weitergeben für die Versionen 2010 - 365.
Deine separate dll mit den Icons ist unnötig, ist ja eh alles in der dotm drin. Du ordnest Icons weder über VBA noch der Oberflächenanpassung von Word zu!
Wenn du ein Icon austauschen willst, dann ersetzt du es über den Custom Ui Editor in der dotm.

- Als letzten Schritt würdest du jetzt noch einen RibbonHandler implementieren Public Sub RibbonClick(control As IRibbonControl) ... Select Case control.id ... Case "MeinTollerBefehlButton": MeinTollerBefehl() ... End Select
der dir die eigentliche Routine aufruft.

------------------

Wenn du auf VSTO wechselst, dann fügst du die Icons nicht mehr in die Vorlage ein - sofern du ein AddIn und keine Vorlage baust. Das AddIn initialisiert ein Ribbon Objekt, läd die Icons aus der Ressource nach (das ist dann womöglich eine dll aus Visual Studio) und zeigt es an.
Das Verteilen dieser Lösung erfolgt ja dann zB als OneClick Installation. Soweit bin ich aber noch nicht in der Praxis.
 
Zuletzt bearbeitet:
Danke für deine Beschreibung und dass du dir die Mühe machst.
Also ich meinte diese Bibliothek hier:
Icons.jpg
wo ich gern meine eigenen Icons hinterlegt hätte. So als 100er Set und auch gleich für alle Office Apps...

Spezielle AddOns, Templates, Skripte usw. sind mir zu umständlich, dafür brauche ich die Bilder zu wenig, da ich wie gesagt vor allem tastenorientiert arbeite.
 
OK, also du arbeitest vornehmlich mit Shortcuts wo Icons egal sind, aber du willst deine icons einbinden und auswählen können.
Du weißt schon, dass das bisschen widersprüchlich ist? :D

Zumal du bei dieser Methode ja nach einer Neuinstallation oder bei einer neuen Version deine Befehle neu für das Ribbon zusammenbauen musst. Das entfällt bei meiner Methode.

Wie man eigene Icons da einbindet müsste man mal suchen. Gucken ob sich da was finden lässt.
 
morcego schrieb:
OK, also du arbeitest vornehmlich mit Shortcuts wo Icons egal sind, aber du willst deine icons einbinden und auswählen können. Du weißt schon, dass das bisschen widersprüchlich ist? :D
Richtig, die Icons haben bei mir wenig Prioriät. Deshalb eben ein einfacher Weg, wozu für mich das Befüllen einer Ressourcendatei mit (bereits vorhandenen) Icons zählen würde.

morcego schrieb:
Wie man eigene Icons da einbindet müsste man mal suchen. Gucken ob sich da was finden lässt.
Deshalb werde ich mich wohl immer mal wieder in solche Threads einklinken...

Schönes Fest allerseits ...
 
Zurück
Oben