VBA-Beispiele > Excel > Makros: Dateien und Ordner

Tipp 102: Makros immer zur Verfügung stellen

Wie kann man erreichen, daß die Makros immer zur Verfügung stehen, egal, welche Mappe gerade offen ist?


Makros werden in der Regel in der Mappe gespeichert, in der sie benötigt werden. Aber es gibt auch Makros, die immer zur Verfügung stehen sollen, die also sofort beim Aufruf von Excel bereit sein sollen. Häufig liest man hierzu die Empfehlung, man solle die Makros in der sogenannten personl.xls speichern. Diese Methode hat jedoch gravierende Nachteile. Besser ist es, wenn man sich Add-Ins erstellt und diese über den Add-Ins-Manager im Menü Extras einblendet.

Erstellen eines Add-Ins

  1. Zuerst erstellt man ganz normal seine Makros/VBA-Routinen, indem man sie aufzeichnet oder selbst schreibt (siehe hierzu auch Wo gibt man nun die Makros ein?).
  2. Anschließend wählt man in Excel in der Mappe, in der sich die Makros befinden, den Befehl Datei - Speichern unter und gibt einen aussagekräftigen Dateinamen ein.
  3. Dann wählt man im Dialogfeld ganz unten den Dateityp Microsoft Excel-Add-In (*.xla). Daraufhin wechselt Excel automatisch in den Pfad, in dem sich standardmäßig die Add-Ins befinden. Man kann den Ordner auch wechseln, was aber nicht zu empfehlen ist.
  4. Mit einem Klick auf Speichern steht das Add-In sofort zur Verfügung. Excel speichert es und ergänzt den Namen mit der Endung .xla.

Nun ist das Add-In gespeichert und steht zur Verfügung, arbeiten kann man damit aber noch nicht. Um das Add-In zu aktivieren, geht man wie folgt vor:

Einbinden des Add-Ins

Ab Excel 2007

  1. Office-Schaltfläche (oben links)
  2. Excel-Optionen
  3. Add-Ins
  4. Verwalten: Add-Ins > Gehe zu ...
  5. Durchsuchen
  6. Add-In-Datei suchen
  7. OK
  8. Prüfen, dass das Add-In in der Liste enthalten und das Häkchen gesetzt ist
  9. OK

Frühere Excel-Versionen

  1. Extras
  2. Add-Ins-Manager
  3. Durchsuchen
  4. Add-In-Datei suchen
  5. OK
  6. Prüfen, dass das Add-In in der Liste enthalten und das Häkchen gesetzt ist
  7. OK

Fertig - nun stehen alle Makros dieses Add-Ins immer zur Verfügung, auch, wenn man Excel beendet und neu startet.

Nachträgliches Bearbeiten der Makros

Möchte man die Makros nachträglich ändern oder ergänzen, ist dies auch kein Problem. Man wechselt mit der Tastenkombination Alt + F11 in den VBA-Editor, in dem man nun (standardmäßig) links oben im Projektexplorer den Namen des Add-Ins findet. Doppelklickt man darauf, werden die einzelnen Elemente (Tabellen, Module, usw.) sichtbar und durch einen Doppelklick auf das entsprechende Element sieht man den Code der/des Makros bereits vor sich und kann ihn bearbeiten. Nicht vergessen, zu speichern!

Add-In in normale Excel-Datei umwandeln

Normalerweise sieht man das Add-In nur im VBA-Editor, nicht aber in Excel. Manchmal möchte man aber aus dem Add-In wieder eine "normale" Mappe erstellen, damit man die Tabellen in Excel bearbeiten kann. Das ist auch kein Problem. Man gibt dazu einfach irgendwo diesen Code ein und führt ihn aus. Wechselt man nun nach Excel, hat man als Mappe das Add-In vor sich und kann wie in einer normalen Excelmappe arbeiten:

personl.xls

Auch mit einer Datei mit dem Namen personl.xls kann man Makros allgemein verfügbar machen. Dazu wählt man folgende Schritte:

  1. Menü Extras - Makro - Aufzeichnen
  2. Namen des Makros eingeben
  3. Bei Makro speichern in wählen: Persönliche Makroarbeitsmappe
  4. Schritte durchführen, die das Makro später ausführen soll
  5. Aufzeichnung beenden
  6. Excel beenden, Frage nach Speichern mit Ja beantworten
  7. Excel neu starten

Nun ist die Datei personl.xls automatisch gespeichert und wird bei jedem Excelstart mitgeöffnet. Sie kann auch bearbeitet werden, indem man mit Alt + F11 in den Editor wechselt.

Auch wenn oft empfohlen wird, zentrale Makros in der personl.xls zu speichern, rate ich davon ab. Im Unterschied zu einem Add-In ist sie eine Mappe, die beim Excelstart mit aufgerufen wird und kann über das Menü Fenster - Einblenden eingeblendet werden. Daraus könnten sich Probleme ergeben, wenn mit der Workbooks-Auflistung gearbeitet wird. So wirkt sich z. B. folgender Code auch auf die personl.xls aus:

Auf ein Add-In wirkt es sich nicht aus.

[Einzellink]

Tipp 15: Ordner erstellen, wenn nicht vorhanden

Wie erstellt man einen Ordner, wenn dieser noch nicht existiert?


[Einzellink]

Tipp 16: Datei verdeckt aufrufen

Wie öffnet man eine Exeldatei verdeckt?


[Einzellink]

Tipp 17: Datei per Makro aufrufen

Wie kann ich mit einem Makro eine Datei aufrufen?


[Einzellink]

Tipp 18: Dateinamen aus Zelle auslesen und diese Datei öffnen

In einer Zelle (zum Beispiel A1) eines Tabellenblatts steht der Name einer anderen Datei. Wie kann man diesen auslesen und dann anschließend diese Datei öffnen lassen?


[Einzellink]

Tipp 19: Datei mit fortlaufender Nummer speichern

Wie kann man eine Datei mit einer fortlaufenden Nummer speichern?


[Einzellink]

Tipp 20: Arbeitsmappen eines Ordners drucken

Wie kann ich mit VBA alle Arbeitsmappen eines Ordners ausdrucken lassen?


[Einzellink]

Tipp 21: Dateien nach Datum öffnen

Wie kann ich Dateien, die Datumsnamen im Format JJJJMMDD (Beispiel: 19980518.XLS) tragen, über VBA öffnen, wenn das jeweilige Datum über ein InputBox abgefragt wird?


[Einzellink]

Tipp 22: Dateien nach Datum auflisten

Wie kann ich in einem Tabellenblatt alle Dateien auflisten, deren letztes Änderunsdatum nach einem anzugebenden Datum liegt?


Alle Dateien auflisten:

[Einzellink]

Tipp 23: Dateien mit Pfadnamen sammeln

Wie kann ich in einem Listenfeld eine Reihe von Dateien mit Pfadnamen zum späteren Öffnen sammeln?


[Einzellink]

Tipp 24: Dateiname aus Pfad

Wie kann ich aus der Zeichenfolge der GetOpenFileName-Methode den Dateinamen filtern?


[Einzellink]

Tipp 25: Prüfen, ob Datenträger in Laufwerk

Wie kann ich prüfen, ob in einem Laufwerk ein Datenträger eingelegt ist?


[Einzellink]

Tipp 26: Einzelnes Tabellenblatt speichern

Wie kann ich ein einzelnes, zu benennendes Tabellenblatt unter einem zu benennenden Dateinamen speichern?


[Einzellink]

Tipp 27: Ermitteln von Datei- und Pfadnamen

Wie kann ich aus einem mit dem Befehl "GetOpenFilename" ermittelten vollen Dateinamen den eigentlichen Dateinamen und den Pfad ermitteln?


[Einzellink]

Tipp 28: Laufwerk über InputBox auswählen

Wie kann ich den Anwender über eine Input-Box ein bestimmtes Laufwerk auswählen lassen (die Laufwerke sind nicht bekannt, sie müssen eingelesen werden)?


[Einzellink]

 

Das Chemtrailhandbuch von Jörg Lorenz mit einem Vorwort von Jörg Kachelmann

Susanne Hammann-Sayilir - Modedesign  Modeillustration