VisualBasic Button in Excel-Worksheet mit Personal.XLSB generieren

Fabian0787

Cadet 4th Year
Registriert
Jan. 2014
Beiträge
96
Hallo Leute!

Ich wollte fragen ob jemand von euch weiß, wie man einen Button in einem Worksheet erstellt, der in jeder geöffneten Excel-Datei automatisch auftaucht, damit man ein Makro starten kann.

Mein Makro liegt in C:\Benutzer\%USERPROFILE%\Appdata\Roaming\Microsoft\Excel\XLSTART\ in der Personal.XLSB und kann bislang nur per Shortcut gestartet werden...

Gibt es da einen Trick? Über eure Hilfe wäre ich sehr dankbar.


Grüße

Fabian
 
Öffne mit Excel eine neue leere Arbeitsmappe und wechsle in den VBA-Editor.
Füge der Arbeitsmappe ein neues Modul mit folgendem Inhalt hinzu:
Code:
Option Explicit
Option Private Module
 
Public Sub DeinMakroname(control As IRibbonControl)
    'Hier Makrocode einfügen.
End Sub
Den Methodennamen kannst du an dein Makro frei anpassen.

Speichere die Arbeitsmappe ab. Wähle als Dateiformat Excel-Add-In (*.xlam).
Schließe Excel und öffne die Excel-Datei mit einem ZIP-Programm deiner Wahl, bspw. 7-Zip.
Öffne die gepackte Datei _rels\.rels (eine XML-Datei). Der Relationships-Knoten enthält bereits drei Relationship-Objekte. Füge ihm dieses vierte Objekt hinzu:
Code:
<Relationship Target="customui/customui.xml" Type="http://schemas.microsoft.com/office/2006/relationships/ui/extensibility" Id="rId4"/>
Pass auf, dass die ID nicht mit den IDs der drei anderen Objekte kollidiert.

Erstelle mit deinem ZIP-Programm nun in der Excel-Datei einen Unterordner customui mit der Datei customui.xml. Diese Datei hat folgenden Inhalt:
Code:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" xmlns:excelAddin="http://schemas.microsoft.com/office/2006/excel/addins">
    <ribbon>
        <tabs>
            <tab idMso="TabData">
               <group idQ="excelAddin:TestAddin" label="Testgruppe" insertAfterMso="GroupConnections">
                    <button insertBeforeQ="excelAddin:spacer" id="btnTestAddin01" label="Makro starten" imageMso="HappyFace" onAction="DeinMakroname" size="large" screentip="Beschreibung" supertip="Dies ist die Tooltip-Beschreibung."/>
                </group>
            </tab>
        </tabs>
    </ribbon>
</customUI>
onAction="DeinMakroname" musst du an den Namen deines Makros anpassen.
Dies platziert den Button in der Registerkarte Daten (tab idMso="TabData") hinter der Gruppe Verbindungen (insertAfterMso="GroupConnections") mit einem Smiley als Icon (imageMso="HappyFace"):

makro01.png

Eine Liste der Tab- und Gruppen-MSOs bietet Microsoft hier an:
Office 2007: http://www.microsoft.com/en-us/download/details.aspx?id=3582
Office 2010: http://www.microsoft.com/en-us/download/details.aspx?id=6627
Office 2013: http://www.microsoft.com/en-us/download/details.aspx?id=36798

Die Image-MSOs gibt es hier inklusive Vorschau: http://soltechs.net/customui/imagemso01.asp

Zum Schluss kannst du über Entwicklertools > Add-Ins > Durchsuchen... dein Addin in Excel laden.
Das Makro steht dann bei jedem Excelstart automatisch zur Verfügung.
Beispieldateien und leere Vorlagen im Anhang.

Gruß vom Physikbuddha
 

Anhänge

  • SampleAddin.zip
    11,2 KB · Aufrufe: 167
Herzlichen Dank Physikbuddha !

Deine Anleitung war sehr übersichtlich und hat einwandfrei funktioniert. Genau so wollte ich das :evillol:

Hat alles geklappt :D:D:D

Thema kann somit geschlossen werden.
 
Zurück
Oben