Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Aktivierung des Add-Ins Ribbons per vba

Aktivierung des Add-Ins Ribbons per vba
Eddie
Hallo,
ich hatte hier vor kurzem schon mal die Frage gestellt, allerdings vermischt mit anderen Themen, so dass ich besser einen neuen thread aufmache. Bisher dachte ich (und es wurde auch gesagt) man kann das Add-Ins Menü nur mit SentKeys aktivieren, aber die Methode ist quasi unbrauchbar.
Beim Suchen im Web finde ich aber eindeutige Gegenhinweise.
Zum Beispiel hier:
http://www.excelfox.com/forum/f10/activate-ribbon-tab-excel-2007-2010-a-50-print/
oder
http://www.mrexcel.com/forum/showthread.php?634951-Activate-a-given-tab-in-the-ribbon
 

Public g_rbxUI As IRibbonUI
Public Sub rbx_o nLoad(ribbon As IRibbonUI)
' Code for ****** callback. Ribbon control customUI
Set g_rbxUI = ribbon
g_rbxUI.ActivateTabMso "TabAddIns"
End Sub
Der Code aber irgendwie beschädigt, ich denke es heißt 'rbx_onLoad' anstatt 'rbx_o nLoad'
a) weiß ich nicht, wie man den Sub rbx_onLoad anspricht, also was da in der Variable ribbon übergeben werden muss.
b) was noch viel schlimmer ist, ich habe keine Ahnung wie man die xml datei einbindet.
Ich habe mir die Anleitung von RibbonX 'Ablageort der Anpassungsdateien anpassen' angeschaut. Ich bekomme die Struktur mit WinRar geöffnet, jedoch fehlen in der Struktur sowohl userCustomization als auch customUI (also mit Punkt 6 weitermachen ist nicht).
Sofern das überhaupt ein Lösungsansatz ist, wie muss ich verfahren.
Ich denke den xml code erstmal mit einen Editor abspeichern, aber unter welchem Namen?
Wenn ja in welches Verzeichnis kommt die Datei?
Das große RibbonX Tutorial, ist eine Herausforderung, ich scheitere hier momentan schon in den Grundzügen, ein einziges xml abzulegen
Gruß Eddie
Anzeige
AW: Aktivierung des Add-Ins Ribbons per vba
12.07.2012 22:51:12
Nepumuk
Hallo,
in Excel 2010 geht das. Ich hab es dir mal eingebaut.
https://www.herber.de/bbs/user/80957.xlsm
Den Editor kannst du dir hier runterladen:
http://openxmldeveloper.org/blog/b/openxmldeveloper/archive/2009/08/07/7293.aspx
Die XML-Datei wird in der Exceldatei gespeichert, also mit dem Editor die Excelmappe öffnen. Das ist nämlich keine einzelne Datei sondern ein mit ZIP gepackter Ordner der mehrere Dateien beinhaltet. Einfach mal die Dateiendung auf .zip ändern und reinschauen.
Gruß
Nepumuk
Anzeige
AW: Aktivierung des Add-Ins Ribbons per vba
12.07.2012 23:17:39
Eddie
Hallo,
erst mal danke. Leider kann ich den Editor nicht überall nutzen.
Ich werde mir das Muster und auch den Editor anschauen, ob ich darüber raus bekomme, wo die Sachen abgelegt werden müssen. Mein einziges Hilfsmittel was ich immer habe ist Winzip, bekomme ich das damit hin? Ich schaue aber parallel selber.
Gruß Eddie
Anzeige
AW: Aktivierung des Add-Ins Ribbons per vba
12.07.2012 23:48:40
Eddie
Hallo,
wenn ich das richtig sehe, benötige ich folgendes:
Ab root der Datei:
Verzeichnis: customUI
In dem Verzeichnis eine Datei Namens: customUI14.xml
Einziger Inhalt:

{customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Load_Ribbon" /}

{= }=> hat sich mit dem xml-Tags nicht posten lassen
Standard Modul:

Private lobjRibbon As IRibbonUI
Public Sub Load_Ribbon(ByRef probjRibbon As IRibbonUI)
Set lobjRibbon = probjRibbon
lobjRibbon.ActivateTabMso "TabAddIns"
End Sub
Etwas übersehen?
Warum startet die Routine von selbst? Ich sehe weder im 'ThisWorkbook' noch auf Modul-Ebene sowas wie ein 'Auto_Open' ?
Gruß Eddie
Anzeige
AW: Aktivierung des Add-Ins Ribbons per vba
13.07.2012 00:02:25
Nepumuk
Hallo,
nein nichts übersehen. Die VBA-Routine wird aus der XML gestartet:
onLoad="Load_Ribbon"
Wenn du sonst keine Änderungen an den Ribbons vornimmst und daher das Ribbon-Objekt nicht mehr benötigst kannst du das auch so kürzen:
Option Explicit

Public Sub Load_Ribbon(ByRef probjRibbon As IRibbonUI)
    probjRibbon.ActivateTabMso "TabAddIns"
End Sub

Gruß
Nepumuk
Anzeige
AW: Aktivierung des Add-Ins Ribbons per vba
13.07.2012 18:30:42
Eddie
Hallo,
ich habe das mit Mühe zum Laufen bekommen. Das Problem war, dass die customUI14.xml im .rels nicht angelegt war und somit hat er mir die customUI14.xml immer wieder von selber gelöscht.
Nach dem ich im .rels diesen Eintrag ergänzt habe, war alles OK
{Relationship Id="R1b96b4877b4d4626" Type="http://schemas.microsoft.com/office/2007/relationships/ui/extensibility" Target="customUI/customUI14.xml" /}

{= }=> hat sich mit dem xml-Tags nicht posten lassen
Danke für Deine Mühe
Gruß Eddie
Anzeige
AW: Aktivierung des Add-Ins Ribbons per vba
12.07.2012 23:55:55
Nepumuk
Hallo,
klar kannst du das ganze auch mit WinZip und dem Texteditor machen. Die .xml findest du im Ordner "customUI" und die kannst du mit dem Texteditor öffnen. Du darfst die zip aber nicht entpacken. Wenn du die .xml geändert hast, dann die alte im .zip-Ordner löschen und die neue einfach reinziehen.
Gruß
Nepumuk
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Aktivierung des Add-Ins Ribbons per VBA


Schritt-für-Schritt-Anleitung

  1. Erstelle die XML-Datei
    Erstelle eine Datei mit dem Namen customUI14.xml. Der Inhalt sollte wie folgt aussehen:

    <customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Load_Ribbon"/>
  2. VBA-Code einfügen
    Füge den folgenden VBA-Code in ein Standardmodul deiner Excel-Datei ein:

    Private lobjRibbon As IRibbonUI
    
    Public Sub Load_Ribbon(ByRef probjRibbon As IRibbonUI)
       Set lobjRibbon = probjRibbon
       lobjRibbon.ActivateTabMso "TabAddIns"
    End Sub
  3. Speichere die Excel-Datei als .xlsm
    Stelle sicher, dass deine Excel-Datei im Makro-fähigen Format gespeichert ist.

  4. Die XML-Datei in die Excel-Datei einfügen
    Nutze ein ZIP-Tool (z.B. WinZip), um die Excel-Datei zu öffnen. Achte darauf, die Datei nicht zu entpacken. Füge die customUI14.xml in den Ordner customUI ein.

  5. Verknüpfung in der .rels-Datei anlegen
    Stelle sicher, dass in der .rels-Datei ein Eintrag für die customUI14.xml besteht:

    <Relationship Id="R1b96b4877b4d4626" Type="http://schemas.microsoft.com/office/2007/relationships/ui/extensibility" Target="customUI/customUI14.xml"/>
  6. Excel-Datei speichern und schließen
    Speichere die Änderungen und schließe die Datei.


Häufige Fehler und Lösungen

  • Fehler: Die XML-Datei wird nicht erkannt
    Überprüfe, ob die customUI14.xml korrekt im Ordner customUI abgelegt ist und ob die .rels-Datei den richtigen Eintrag enthält.

  • Fehler: Ribbon startet automatisch
    Dies wird durch die onLoad-Eigenschaft in der XML-Datei ausgelöst. Du kannst dies anpassen, indem du den Code entsprechend veränderst.

  • Fehler: Aktivierung des Ribbons funktioniert nicht
    Stelle sicher, dass du die richtige Mso-Tabbezeichnung verwendest. Für Add-Ins ist dies in der Regel TabAddIns.


Alternative Methoden

Wenn du die XML-Datei nicht selbst erstellen möchtest, kannst du auch den RibbonX Editor verwenden, um das Excel Ribbon zu erstellen. Dies erleichtert das Handling der XML-Dateien und ist besonders nützlich, wenn du mehrere Anpassungen vornehmen möchtest.


Praktische Beispiele

  1. Aktivierung eines anderen Ribbons
    Ändere den Mso-Tabnamen in der ActivateTabMso-Methode, um andere Ribbons zu aktivieren, z.B.:

    lobjRibbon.ActivateTabMso "TabHome"
  2. Anpassung des Add-Ins Ribbons
    Du kannst das Ribbon weiter anpassen, indem du zusätzliche Controls hinzufügst. Hier ein einfaches Beispiel, um einen Button hinzuzufügen:

    <customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
       <ribbon>
           <tabs>
               <tab id="MyCustomTab" label="Mein Tab">
                   <group id="MyGroup" label="Mein Gruppe">
                       <button id="MyButton" label="Mein Button" onAction="MyButton_Click"/>
                   </group>
               </tab>
           </tabs>
       </ribbon>
    </customUI>

Tipps für Profis

  • Verwende ribbon vba-Steuerelemente: Nutze die verschiedenen Steuerelemente, die vordefiniert in VBA für Excel Ribbon zur Verfügung stehen, um deine Benutzeroberfläche zu verbessern.

  • Teile deinen Code: Wenn du mit anderen zusammenarbeitest, stelle sicher, dass du deinen RibbonX Code VBA gut dokumentierst, damit andere deinen Aufbau verstehen.

  • Teste in unterschiedlichen Excel-Versionen: Achte darauf, dass dein Code in verschiedenen Excel-Versionen (z.B. 2010, 2013) funktioniert, da sich die Implementierung der Ribbons ändern kann.


FAQ: Häufige Fragen

1. Wie kann ich ein Ribbon in Excel 2007 aktivieren?
Die Schritte sind ähnlich, jedoch musst du darauf achten, dass die Mso-Tabnamen und die XML-Struktur den Anforderungen von Excel 2007 entsprechen.

2. Kann ich das Ribbon ohne den RibbonX Editor erstellen?
Ja, du kannst das Excel Ribbon auch manuell erstellen, indem du die XML-Datei mit einem Texteditor schreibst und in die Excel-Datei einfügst.

3. Was ist der Unterschied zwischen IRibbonUI und RibbonX?
IRibbonUI ist das Interface, das in VBA verwendet wird, um mit dem Ribbon zu interagieren, während RibbonX die XML-Syntax ist, die zur Anpassung des Ribbons verwendet wird.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige