Benutzer mit den meisten Antworten
Benutzung von BuildIn Befehlen in eigenem Ribbon

Frage
-
Hallo,
ich entwickle ein eigenes Ribbon für Excel mit .NET.
da möchte ich gerne von Excel bereits zu Verfügung gestellte Funktionen in meinem eigenen Ribbon nutzen, sprich bestimmte Funktion aus Excel in eigenem Ribbon zusammen stellen. Genau gesagt die Funktionen "Objekt markieren", "am Raster ausrichten", "Textfeld" und "Format übertragen" in einem eigenen Ribbon neben anderen eigenen Funktionen.
Ich kann zwar die idMSO entsprechen angeben, um so die Icons für die Funktionen auf die Buttons anzuzeigen, aber wie komme ich an den Aufruf der entsprechenden Befehle ran?
In Excel 2003 konnte man hingegen ja einfach die Symbolleisten selber auf die Weise erstellen, was in Excel 2007 so nicht mehr geht, gibt es trotzdem eine Möglichkeit in 2007?
Antworten
-
Hallo Bigdeak,
um bereits in Excel vorhandene Funktionen zu nutzen, sind zwei Schritte notwendig:
1.) Festlegen der Eigenschaft "OfficeImageId" - vorausgesetzt, du möchtest das Symbol übernehmen.
2.) Aufrufen der entsprechenden Funktion im Eventhandler der Schaltfläche.
Für die Funktion "Format übertragen" sieht das dann so aus:
- Für die Schaltfläche die Eigenschaft "OfficeImageId" auf "FormatPainter" setzen
- Im Eventhandler die Funktion aufrufen: Globals.ThisAddIn.Application.CommandBars.ExecuteMso("FormatPainter");
Eine Auflistung aller Control IDs in Office 2007 findest du unter http://www.microsoft.com/downloads/details.aspx?FamilyID=4329d9e9-4d11-46a5-898d-23e4f331e9ae&DisplayLang=en.
In der MSDN Library gibt es auch Beispiele zum Anpassen der Multifunktionsleiste zur Laufzeit. Über diesen Weg könntest du dann eine Erweiterung programmieren, mit dem Anwender die Multifunktionsleiste (wie zuvor die Symbolleiste) selbst anpassen können. Allerdings musst du dich dann selbst um die benötigten Dialoge, Datenhaltung etc. kümmern.
Viele Grüße
Jan- Als Antwort vorgeschlagen Jan Tittel Donnerstag, 15. Oktober 2009 10:43
- Als Antwort markiert Robert BreitenhoferModerator Montag, 26. Oktober 2009 21:08
Alle Antworten
-
Hallo Bigdeak,
um bereits in Excel vorhandene Funktionen zu nutzen, sind zwei Schritte notwendig:
1.) Festlegen der Eigenschaft "OfficeImageId" - vorausgesetzt, du möchtest das Symbol übernehmen.
2.) Aufrufen der entsprechenden Funktion im Eventhandler der Schaltfläche.
Für die Funktion "Format übertragen" sieht das dann so aus:
- Für die Schaltfläche die Eigenschaft "OfficeImageId" auf "FormatPainter" setzen
- Im Eventhandler die Funktion aufrufen: Globals.ThisAddIn.Application.CommandBars.ExecuteMso("FormatPainter");
Eine Auflistung aller Control IDs in Office 2007 findest du unter http://www.microsoft.com/downloads/details.aspx?FamilyID=4329d9e9-4d11-46a5-898d-23e4f331e9ae&DisplayLang=en.
In der MSDN Library gibt es auch Beispiele zum Anpassen der Multifunktionsleiste zur Laufzeit. Über diesen Weg könntest du dann eine Erweiterung programmieren, mit dem Anwender die Multifunktionsleiste (wie zuvor die Symbolleiste) selbst anpassen können. Allerdings musst du dich dann selbst um die benötigten Dialoge, Datenhaltung etc. kümmern.
Viele Grüße
Jan- Als Antwort vorgeschlagen Jan Tittel Donnerstag, 15. Oktober 2009 10:43
- Als Antwort markiert Robert BreitenhoferModerator Montag, 26. Oktober 2009 21:08
-
Nur der Vollständigkeitshalber, du kannst natürlich auch den XML Weg gehen, da kannst du dann alle Office Steuerelemente deklarieren und musst nicht den Weg über den Eventhandler gehen. Nachteil ist, einmal den Weg mit XML beschritten, muss man dabei bleiben.
Grüße,
Lars