Startseite

AddIn erzeugen und bearbeiten

Makros die man häufig benötigt, kann man sich mit einem selbst erstellten AddIn zur ständigen Verfügung einrichten. Das gilt auch für die Programme, die ich in der Abteilung Werkzeugkiste zur Verfügung gestellt habe.
In den von mir vorgestellten Beispiel wird zunächst ein neuer Menüpunkt erzeugt. Dazu öffnen wir eine leere Arbeitsmappe. Dort wird im Visual Basic-Editor im Modul der Arbeitsmappe (Aufruf siehe Bild 1) der folgende Quelltext abgelegt:
Bild 1
Private Sub Workbook_Open()
'Menü erzeugen
Dim Menue As CommandBarPopup
Dim Schaltflaeche As CommandBarButton
' Menüpunkt anlegen
With Application.CommandBars("Worksheet Menu Bar")
    Set Menue = .Controls.Add(Type:=msoControlPopup, _
         before:=.Controls.Count, temporary:=True)
End With
' Unterpunkte im Menü anlegen
Menue.Caption = "&Tool-Box"                     ' Name des Menüs
    Set Schaltflaeche = Menue.Controls.Add
        With Schaltflaeche
            .Style = msoButtonIconAndCaption    ' Format für Menüpunkt: Icon und Text
            .FaceId = 1445                      ' Nummer des Icons
            .Caption = "Web-Tabellen erzeugen"  ' Name der Menüzeile
            .OnAction = "webtaboeffnen"         ' Aktion ausführen
            .BeginGroup = True                  ' Trennlinie erzeugen
        End With
' Unterpunkt im Menü anlegen
Set Schaltflaeche = Menue.Controls.Add
    With Schaltflaeche
        .FaceId = 4207
        .Caption = "Zufallszahlen generieren"
        .OnAction = "zufzahloeffnen"
        .Style = msoButtonIconAndCaption
        .BeginGroup = True
    End With
End Sub
So sieht das Ergebnis aus:
Damit das auch funktioniert, müssen nun die Programme auch aufgerufen werden können. In diesem Beispiel ist das einfach, weil es sich um zwei kleine Programme aus meiner Werkzeugkiste handelt, die den gesamten Quelltext in einem UserForm enthalten. Die UserForms brauchen also nur aus der Herkunftarbeitsmappe, in die neue Mappe kopiert werden. (Wie das geht habe, ich hier beschrieben.) So etwa sollte die Struktur im Visual Basic-Editor aussehen:
Im (Standard)modul1 werden diese Quelltexte hinterlegt:
Option Explicit
Sub webtaboeffnen()
WebTabe.Show
End Sub
Sub zufzahloeffnen()
ZufZahl.Show
End Sub
Als nächster Schritt wird die Arbeitsmappe abgespeichert. Dazu wird der Menüpunkt Datei / Speichern unter... aufgerufen. Dabei ist es wichtig, als Dateityp .xla auszuwählen.
Excel öffnet dabei gleich den richtigen Ordner, so dass man sich darum nicht kümmern muß. Excel schließ nach dem Speichern automatisch das neue AddIn. Beim nächsten Start von Excel sollten wir es unter dem Menüpunkt Extras / Add-Ins... (heisst in älteren Versionen Add-In-Manger...) finden.
Es öffnet sich dieses Fenster:
Dort wird das AddIn angehakt, falls es schon sichtbar ist. Andernfalls muß es über den Button Durchsuchen im Verzeichnis gesucht werden. Nun steht das AddIn zur Verfügung, bis der Haken wieder entfernt wird. Um den Eintrag im Add-Ins Fenster zu entfernen, muß das AddIn entweder gelöscht, oder umbenannt werden. Wenn der Eintrag dann selektiert wird, kommt eine Abfrage, ob der Eintrag gelöscht werden soll. Wird das bestätigt, wird der Eintrag entfernt.
Will man das AddIn ändern, wird unter Diese Arbeitsmappe das Eigenschaftenfenster geöffnet. Dort muß der Parameter hinter IsAddin auf False gesetzt werden.

Das "Sahnehäubchen"

Um alles abzurunden wird im Menü Datei der Punkt Eigenschaften aufgerufen.
Dort habe ich folgende Einträge vorgenommen. Der Kommentar findet sich im Fenster AddIns wieder, das weiter oben zu sehen ist.
Nachdem die Änderungen durchgeführt wurden, wird dieser Parameter wieder auf True gesetzt. Achtung, das geänderte AddIn ist so noch nicht gespeichert! Das erfolgt erst, wenn Excel geschlossen wird, da sollte diese Meldung erscheinen:
Das wird mit ja bestätigt. Nach dem nächsten Öffnen von Excel steht das geänderte AddIn zur Verfügung.
Eine Beispieltabelle habe ich im im Downloadbereich zur Verfügung gestellt.