PS-Trainer
Excel-Macros mit VBA@ PS-Trainer
Programmierung von Macros mit Visual Basic for Applications
Homepage von PS-Trainer - KalkulationsProgramme - an PS-Trainer
PS-Trainer

Die Tabellenkalkulation Excel ermöglicht nicht nur die Verwendung zahlreicher Funktionen und Optionen im "normalen" Excel-Bereich. Darüber hinaus gibt es die Möglichkeit, Excel mit einer eigenen Programmiersprache individuell zu erweitern. Mit VBA können sie mehrere Arbeitsschritte zu Macros verbinden.
Das erleichtert die Arbeit und macht Spass !
Visual Basic for Applications (VBA) ist eine Adaptierung der Programmiersprache von Microsoft. Gegenüber VB sind hier die Objekte und Methoden der Tabellenkalkulation enthalten - Sie können daher Tabellen, Bereiche, Zellen, Funktionen und und deren Werte verwenden und nach Belieben beeinflussen.

Inhalt: Das erste Macro
Macro: Standard-Daten
Eine Macro-Bibliothek anlegen
Grafiken als Macro-Tasten
Eigene Macro-Menüs

Das erste Macro:
Ein Macro ist ein kleines (VBA)-Programm, das in einer Kalkulationsdatei eingebettet ist. Damit werden z.B.. mehrere manuell ausgeführte Arbeitsschritte zusammengefasst und automatisch ausgeführt.
Sie können den Macro-Assistenten verwenden, um ein Macro automatisch zu erstellen:

Klicken sie an eine beliebige Stelle des Kalkulationsblattes ausser A1.
Befehl Extras / Macro / Aufzeichnen
Eintragen: Macro-Name (z.B. TestMacro 1) , Tastenkombination (vorläufig frei lassen), Beschreibung ( ... ). OK-Button klicken. Das Macro-Fenster verkleinert sich und bleibt vorne, solange sie "Programmieren".
Klicken sie auf Zelle A1 und tragen sie einen Text ein (z.B. "Das ist ein Test..."). Schliessen sie die Eingabe, z.B. durch Klick auf das grüne Hakerl.
Beneden sie die Aufzeichnung durch Klick auf das dunkelblaue Quadrat im Macro-Fenster ("Aufzeichnung beenden") oder durch Befehl
Extras / Macro / Aufzeichnung beenden. Das Macro ist nun fertig programmiert.

Macro ausprobieren:
Löschen oder ändern sie den Eintrag in A1 und klicken sie auf irgendeine andere Zelle - Sonst können sie nachfolgend keine Macro-Wirkung sehen.
Befehlen sie Extras / Macro / Macros.
Das Macro-Auswahlfenster mit allen angelegten Macros erscheint. Wählen sie ihr Macro aus und klicken sie "Ausführen".
Das Macro wird ausgeführt und arbeitet genau die gleichen Schritte ab, wie sie von ihnen vorgegeben wurden.
Wenn sie ihr Arbeitsblatt speichern, wird das Macro ebenfalls gespeichert und steht jederzeit zu ihrer Verfügung.

Auf diese Weise können sie alle manuellen Arbeitsschritte durch Macros ausführen lassen. Dazu eignen sich oft wiederholte Arbeitsvorgänge. Der Vorteil von Macros liegt nicht nur in der rascheren Arbeit, sondern auch bei der Vermeidung von Fehlern, wie sie bei manuellen Routine-Arbeiten oft vorkommen.

Beispiel für StandarddatenStandard-Daten für ein Arbeitsblatt:
Auf einem professionellen Arbeitsblatt finden sie immer an gut sichtbarer Stelle:
Titel, Firma, Name, Datum und Version, meist auch eine Kurz-Beschreibung.
Sie können ein Macro programmieren, das diese Daten komplett an eine bestimmte Stelle ihres Arbeitsblattes schreibt, und sich damit lästige Arbeit sparen.
Legen sie ein Macro "Standarddaten" an, so wie im Beispiel "Das erste Macro" beschrieben. Setzen sie dabei das aktuelle Datum ein, lassen sie Titel und Beschreibung frei.
Testen sie die korrekte Funktion ihres Macros. Es ist üblich, Macros zuerst in einfacher Form zu erstellen, dann schrittweise zu verbessern.
Lagen sie ein neues Test-Makro mit dem aktuellen Datum an:
Tragen sie während der Aufzeichnung in das Datum-Feld die Funktion =HEUTE() ein und formatieren sie nach Wunsch.
Sie werden nun dieses Heute-Testmakro in ihr Makro "Standard-Daten" eintragen: Es gibt u.a. folgende Wege zum VBA-Programm:
Befehl Extras / Macro / Macros, dann Macro auswählen und Klick auf "Bearbeiten"
oder Extras / Macro / Visual Basic Editor
oder Tastatur-Befehl Alt+F11
Sie sehen nun den VBA-Programmtext der beiden Makros. Sie müssen den Code nicht genau verstehen, aber ungefähr erkennen, wo was programmiert wird. Um ein Makro zu ändern, verfahren sie immer nach dem Prinzip "make before break":
Sie verwandeln jene Programmzeile(n), die verschwinden sollen, in einen "Kommentar". Dann führen sie die Änderung durch und testen ihr neues Programm. Wenn der Test gut läuft, löschen sie zuletzt die überflüssigen Kommentare.
Der Original-Text im Macro Standarddaten könnte lauten
Range("C4").Select
ActiveCell.FormulaR1C1 = "11/11/2002"
Sie sehen: In der ersten Zeile wird eine Zelle ausgewählt, in der zweiten wird ein Inhalt eingetragen. Im Macro Datum finden sie die Funktion:
Range("C4").Select
ActiveCell.FormulaR1C1 = "=TODAY()"
Offenbar wird in VBA die englische Funktion verwendet, obwohl im Arbeitsblatt die deutsche aufscheint.
Sie verwandeln durch Voransetzen eines Hochkomma (single quote) die alte Version in einen (nicht auszuführenden) Kommentar und fügen die neue Version ein:
Range("C4").Select
' ActiveCell.FormulaR1C1 = "11/11/2002"
ActiveCell.FormulaR1C1 = "=TODAY()"
Testen sie dieses verbesserte Macro.

Nun wird zwar das Erstellungs-Datum automatisch richtig eingetragen, dieses ändert sich jedoch täglich - das ist unerwünscht und muss noch verbessert werden.
Erstellen sie ein weiteres Macro, mit dem sie die Funktion durch ihren aktuellen Wert ersetzen:
Klicken sie auf jene Zelle, welche die Funktion =HEUTE() enthält.
Starten sie ein neues Testmakro "Wert" und befehlen sie
Bearbeiten / Kopieren
Bearbeiten / Inhalte einfügen / Werte

Quittieren sie mit "OK". Nun haben sie das aktuelle Datum zuerst berechnet, dann aber fixiert.
Ergänzen sie nun ihr Macro "Standarddaten" durch ihr neues Macro:
' Beschreibung
Range("B4").Select
ActiveCell.FormulaR1C1 = "Datum"
' Aktuelles Datum eintragen
Range("C4").Select
ActiveCell.FormulaR1C1 = "=TODAY()"
' Datum-Funktion in Datum-Wert umwandeln
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False

Das Macro schreibt nun tatsächlich das aktuelle Datum, dieses wird später nicht mehr geändert, da es sich um einen Wert, nicht um eine Funktion handelt.

Ergänzen sie ihr Macro nach der gleichen Methode mit professioneller Formatierung (Schrift, Farbe, Grösse, Rahmen, Hintergrund...):
Erzeugen sie ein Testmacro, welches die gewünschte Formatierung durchführt, integrieren sie dessen Code sinnvoll in ihr Macro "Standarddaten".

Nun haben sie ein professionelles Macro erstellt. Das erfordert auch eine passende weitere Verarbeitung: Es ist amateurhaft kompliziert, ihr Macro umständlich mit Menu Extra / Macros / Macro / Standarddaten / Ausführen zu starten - Sehen sie sich daher die nächsten Themen an, mit deren Hilfe sie ihr Macro elegant in Excel integrieren.


Macro-Bibliothek:
Das Macro "Standarddaten" wird zwar zusammen mit ihrem Arbeitsblatt gespeichert, ist jedoch nicht in neuen Arbeitsblättern nicht enthalten.

Sie können beliebig viele Macros in eigenen VBA-Bibliotheken speichern, die in jedem neuen Arbeitsblatt enthalten sind.
So speichern sie eine VBA-Macro-Bibliothek:
Leider fragt Excel sehr früh, nämlich scon beim Befehl "Aufzeichnen" (Start der Aufzeichnung) nach dem Speicherziel: Geben sie hier ein: "Persönliche Makroarbeitsmappe". Falls sie ihr Macro schon anderswo gespeichert haben, dann legen sie irgendein Macro hier an, damit die persönliche Arbeitsmappe überhaupt erzeugt wird, löschen sie das unnötige Macro, und kopieren sie dann ihr Macro dorthin.

Speichern sie ihre persönliche Macro-Bibliothek so:
Wählen sie im VBA-Fenster (zugänglich aus Excel mit Alt-F11) das "VBA Projekt (PERSONL.XLS) und erteilen sie den Befehl Datei / PERSONL.XLS speichern. Diese Datei wird (je nach Betriebssystem) im Ordner
C:\Dokumente und Einstellungen\Name\Anwendungsdaten\
Microsoft\XLStart\PERSONL.XLS
gespeichert.
Diese Datei wird bei jedem Start von Excel geladen, die darin enthaltenen Macros stehen ihnen daher auf jedem neuen Arbeitsblatt zur Verfügung.
Sie können diese Macro-Bibliothek zu jedem späteren Zeitpunkt ändern und ergänzen.

Grafiken als Macro-Buttons:
Der Aufruf eines Macros (z.B. der eigenen Bibliothek) ist mit Befehl
Extra / Macro / Macros / PERSONL.XLS!Standarddaten doch etwas kompliziert. Eleganter ginge es z.B. mit einem Button zum Anklicken.
Dazu stehen mehrere Methoden zur Verfügung:
Excel-Button Lassen sie die Symbolleiste "Formular" anzeigen: Befehl Ansicht / Symbolleisten / Formular. In der Werkzeugleiste wählen sie das Symbol "Schaltfläche" und ziehen sie mit der Maus in ihrem Arbeitsblatt einen Button. Wählen sie aus dem automatisch erscheinenden Fenster "Makro zuweisen" das gewünschte Macro, z.B. "Standarddaten". Mit der rechten Maustaste lässt sich dieser Button verschieben, seine Grösse und sein Text ändern. Bei Klick auf diesen Button wird das Macro ausgeführt - rasch und einfach.

Sie können jeden der zahllosen Freeware-Buttons aus dem Internet einsetzen:
Grafik zuerst speichern, dann in Excel importieren: Befehl
Einfügen / Grafik / Aus Datei, dann Grafik auswählen, Taste "Einfügen".
Grafik-Button (unbeschriftet)So können sie eingefügte Grafiken als Buttons nutzen: Grafik mit der rechten Maustaste anklicken, Befehl "Makro zuweisen", aus der Tabelle das gewünschte Macro auswählen, mit "OK" quittieren. Bei Klick auf diesen Grafik-Button wird das Macro ausgeführt - rasch, elegant und einfach.
Selbstverständlich können sie Grafik-Buttons - wie jede andere Grafik - mit Grafik-Programmen ändern, z.B. beschriften, mit Icons versehen, ...

Macros in eigenen Menüs:
Eine besonders einfache und professionelle Methode, eigene Macros einzubauen, sind eigene Menüs:
Sie ordnen ihre eigenen Macros in ihrem eigenen Menü an, oder fügen einen eigenen Macro-Befehl in ein vorhandenes Menü ein.

Befehl Ansicht / Symbolleisten / Anpassen / Befehle / Kategorien / Neues Menü:. Ziehen sie den Befehl "Neues Menü" aus der rechten Seite des Fensters an jene Stelle des Menübalkens, wo das neue Menü stehen soll.

Mit der rechten Maustaste können sie den Titel (hier: myMenü) ändern.
Befehl Ansicht / Symbolleisten / Anpassen / Befehle / Makros: Ziehen sie aus diesem oder anderen Menüs Symbole aus der rechten Seite des Fensters an die gewünschte Stelle des neuen Menüs.

Klick mit der rechten Maustaste auf einen Menüpunkt zeigt dessen Eigenschaften. Ändern sie "Makro zuweisen" nach Wunsch.

Nun haben sie ein funktionierendes Macro erzeugt, und dessen Anwendung einfach und professionell organisiert.

Kalkulations-Programme

Erstellung eigener Funktionen in VBA

Homepage von PS-Trainer - KalkulationsProgramme - an PS-Trainer

Aktuelle Daten dieser Seite Letzte Änderung:
  Geocities

 

 

 

Hosted by www.Geocities.ws

1