PERSONAL.XLS(B) – Die Excel Arbeitsmappes für globale Makros

Makros können einem das tägliche Arbeiten mit Excel ein gutes Stück vereinfachen. Einige Makros sind anwendungsspezifisch und daher nur in einer bestimmten Datei nutzbar, andere hingegen sind universell einsetzbar. Da liegt es Nahe, diese auch global für alle geöffneten Dateien verfügbar zu machen, ohne den Code in jede Datei kopieren zu müssen oder immer eine zusätzliche Datei geöffnet zu haben, die man ansonsten für die Arbeit gar nicht benötigt.

Für genau diesen Fall gibt es die PERSONAL.XLS (ab Office 2007 PERSONAL.XLSB). Sie wird automatisch im Hintergrund geladen, wenn Excel geöffnet wird. Somit gibt es zwar kein Fenster für diese Datei, durch das man auf die Arbeitsblätter zugreifen könnte, aber die Makros sind dennoch jederzeit aufrufbar.

Hinweis: Alle nachfolgenden Erläuterungen beziehen sich auf Office 2003!

 
Anlegen der PERSONAL.XLS

Die Datei sollte durch Excel angelegt werden. Hierzu wird einfach ein beliebiges Dummy-Makro aufgezeichnet. Extras => Makro => Aufzeichnen…

Im Feld Makro speichern in: muss Persönliche Makroarbeitsmappe ausgewählt sein.

Anschließend eine beliebige Aktion aufzeichnen, beispielsweise das Einfärben einer Spalte und die Aufzeichnung beenden. Nun Excel beenden und die Sicherheitsabfrage mit Ja bestätigen.

Fertig. Nachdem Excel erneut geöffnet wurde, ist das Dummy-Makro jederzeit ausführbar.

 
Und nun ein sinnvolles Makro erstellen

Je komplexer ein Makro sein soll, umso geringer die Wahrscheinlichkeit, dass es sich mit dem Rekorder erstellen lässt. Also öffnet man mit ALT + F11 den VBA-Editor. In der linken Baumstruktur befindet sich ein Eintrag für die Datei PERSONAL.XLS. Dieser am besten als erstes einen ordentlichen Namen geben: Rechte Maustaste => Eigenschaften von … und dann unter Projektname die Beschriftung ändern.

Da bereits ein Dummy-Makro erzeugt wurde, hat Excel ein Modul angelegt, welches den Code des Makros enthält. Diesen kann man nun mit beliebigem eigenen Code ersetzen.

 
Speicherort herausfinden

Je nach verwendeter Office Version und Systemkonfiguration kann sich der Speicherort der PERSONAL.XLS unterscheiden. Es gibt aber einen schnellen Weg, dennoch an den Speicherpfad zu gelangen. Dazu öffnet man wieder den VBA-Editor.

  1. Excel öffnen
  2. Mit ALT + F11 den VBA Editor öffnen
  3. Mit STRG + G den Direktbereich öffnen
  4. Mit STRG + A den gesamten Inhalt des Direktbereich markieren
  5. ?Application.StartupPath eingeben
  6. Mit ENTER bestätigen

Jetzt bekommt man den Pfad der PERSONAL.XLS angezeigt. In meinem Fall ist das

D:\Dokumente und Einstellungen\Schmidt.M\Anwendungsdaten\Microsoft\Excel\XLSTART

oder kurz und universell nutzbar

%APPDATA%\Microsoft\Excel\XLSTART
  1. 6. März 2014, 10:49 | #1

    Soweit so gut.
    Ich beschäftige mich schon seit Office 97 mit Makros in Excel und habe verschiendene davon immer mal in der personal.xls gespeichert.
    Nachdem ich nun in 2007 ein dort liegendes Makro nachbearbeiten wollte, musste ich dazu diese Arbeitsmappe einblenden. Nach den Anpassungen habe ich sie dann wieder ausgeblendet. Seit dem habe ich nun folgendes Phenomen: wenn ich eine Excel-Datei öffne und dann irgendwann wieder schließe, bleibt ein leeres Excel-Fenster geöffnet (offenbar die ausgeblendete Arbeitsmappe personal.xls). Verhindern kann ich das nur, wenn ich über den Office-Knopf gehe und dann Excel beenden wähle.
    Außer über Anleitungen mittels Brachial-Methoden in VBA habe ich bisher noch keine Möglichkeit gefunden, das Problem mit Office-Werkzeugen zu beheben.
    Hat hier ggf. jemand einen Tipp?

  2. 22. April 2016, 13:24 | #2

    Ich suche auch nach einer Lösung in Excel 2013. Habe den selben Effekt.

  3. Ulf
    11. Juli 2016, 14:06 | #3

    Ich habe schon alles mögliche bei der Google-Suche probiert, aber wie greife ich nun in einer anderen Mappe auf meine Public function, gespeichert in PERSONAL.XLSB, zu, ohne wieder das ganze Modul kopieren zu müssen?!
    Wie heißt das Präfix für die Zellfunktion?

    zB die eigene Funktion VERKETTEN2 soll IN EINER ZELLE angewandt werden.
    A1=???.VERKETTEN2(bereich; trennzeichen)

  4. 19. Juli 2016, 07:17 | #4

    Versuch es mal, indem du den Namen der Datei voran stellst: PERSONAL.XLSB!VERKETTEN2

    Alternativ kannst du im VBA-Editor unter Extras => Verweise die PERSONAL.XLSB in dein grade geöffnetes Projekt einbinden und kannst anschließend ganz normal auf die Funktionen zugreifen.

    Im Menü Verweise steht die PERSONAL.XLSB allerdings mit ihrem VBA-Projekt-Namen und nicht mit ihrem Dateinamen.

  1. 17. August 2012, 12:38 | #1