Vba-programmierung Mit Excel Grundlagen

download Vba-programmierung Mit Excel Grundlagen

of 125

Transcript of Vba-programmierung Mit Excel Grundlagen

  • 7/30/2019 Vba-programmierung Mit Excel Grundlagen

    1/125

    Universittsrechenzentrum

    Johannes GogolokAbt. Wiss. Anwendungen

    URZ B/012/9911

    VBA Programmierung mit Excel

    Grundlagen

  • 7/30/2019 Vba-programmierung Mit Excel Grundlagen

    2/125

    Seite 2

    R E I H E : I NT EGR I ER T E S Y S T EM E

    VBA Programmierung mit Excel

    Grundlagen

    FernUniversitt HagenNovember 1999

  • 7/30/2019 Vba-programmierung Mit Excel Grundlagen

    3/125

    Inhaltsverzeichnis1 EINLEITUNG....................................................................................................................................7

    2 DAS ERSTE EXCEL-PROGRAMM EIN AUFGEZEICHNETES MAKRO....................................9

    2.1 MAKRO AUFZEICHNEN..................................................................................................................92.1.1 Eine Beispieltabelle............................................................................................................92.1.2 Die Makroaufzeichnung ...................................................................................................102.1.3 Die Ausfhrung des Makros.............................................................................................112.1.4 Verwaltung von Makros.................................................................................................... 12

    2.2 ZUORDNUNG ZU TASTENKOMBINATIONEN, SCHALTFLCHEN UND MENS .....................................122.2.1 Aufruf ber Tastenkombinationen....................................................................................122.2.2 Aufruf ber Schaltflchen.................................................................................................132.2.3 Aufruf ber Symbolleisten................................................................................................14

    3 VBA GRUNDLAGEN .....................................................................................................................17

    3.1 OBJEKTE UND IHRE HIERARCHIE.................................................................................................173.2 EIGENSCHAFTEN........................................................................................................................193.3 METHODEN ...............................................................................................................................193.4 EREIGNISSE ..............................................................................................................................20

    4 DIE ENTWICKLUNGSUMGEBUNG..............................................................................................21

    4.1 DER PROJEKT-EXPLORER..........................................................................................................224.2 DER OBJEKTKATALOG................................................................................................................234.3 DER PROGRAMMEDITOR ............................................................................................................254.4 DAS DIREKTFENSTER .................................................................................................................26

    5 DAS SPRACHKONZEPT VON VBA .............................................................................................27

    5.1 DATENTYPEN.............................................................................................................................295.2 OPERATOREN, OPERANDEN, AUSDRCKE ..................................................................................29

    5.2.1 Ausdrcke ........................................................................................................................295.2.2 Operatoren .......................................................................................................................30

    5.3 VARIABLEN, KONSTANTEN, ARRAYS ...........................................................................................325.3.1 Konstanten .......................................................................................................................325.3.2 Integrierte Konstanten......................................................................................................335.3.3 Variablen ..........................................................................................................................335.3.4 Arrays (Datenfelder)......................................................................................................... 355.3.5 Dynamische Arrays ..........................................................................................................365.3.6 Benutzerdefinierte Datentypen.........................................................................................375.3.7 Objektvariablen ................................................................................................................37

    5.4 KONTROLLSTRUKTUREN.............................................................................................................385.4.1 Entscheidungsstrukturen (Verzweigungen) .....................................................................385.4.2 Schleifenstrukturen ..........................................................................................................42

    5.5 KONVERTIERUNG UND MANIPULATION VON DATEN. .....................................................................48

    5.5.1 Ermittlung des Datentyps.................................................................................................485.5.2 Konvertieren von Datentypen...........................................................................................495.5.3 Manipulieren von Daten ...................................................................................................49

    6 UNTERPROGRAMMTECHNIK ..................................................................................................... 53

    6.1 PROZEDUREN............................................................................................................................536.1.1 Aufruf und Parameterbergabe........................................................................................536.1.2 Optionale Argumente .......................................................................................................55

    6.2 BENUTZERDEFINIERTE FUNKTIONEN ...........................................................................................55

    7 ABLAUFSTEUERUNG I ................................................................................................................57

    7.1 CURSORPOSITION FESTSTELLEN.................................................................................................577.2 VERSETZEN DES CURSORS (OFFSET METHODE) ......................................................................57

    7.3 ZELLEN GEZIELT AUSWHLEN .....................................................................................................587.4 INHALTE IN EINZELNE ZELLEN EINTRAGEN....................................................................................597.5 FORMELN IN ZELLEN EINTRAGEN ................................................................................................597.6 AUSSCHNEIDEN .........................................................................................................................59

  • 7/30/2019 Vba-programmierung Mit Excel Grundlagen

    4/125

    Seite 4

    7.7 KOPIEREN .................................................................................................................................597.8 EINFGEN .................................................................................................................................607.9 ASCII WERTE / ASCII ZEICHEN...........................................................................................60

    8 DIALOGE (TEIL I) ..........................................................................................................................63

    8.1 MSGBOX ...................................................................................................................................63

    8.2 INPUTBOX .................................................................................................................................668.2.1 Die Funktion InputBox......................................................................................................668.2.2 Die Methode InputBox......................................................................................................67

    9 TABELLENNAVIGATION..............................................................................................................68

    9.1 ABSOLUTE POSITIONIERUNG AUF ZELLEN UND ZELLBEREICHE .....................................................699.1.1 Positionierung ber die Range Methode.......................................................................699.1.2 Positionierung ber die Cells - Eigenschaft .....................................................................70

    9.2 RELATIVE POSITIONIERUNG AUF ZELLEN UND ZELLBEREICHE.......................................................719.3 ZUGRIFF AUF TABELLENBLTTER UNDARBEITSMAPPEN...............................................................72

    10 MANIPULATION VON ZELLEN UND ZELLBEREICHEN............................................................ 73

    10.1 AUSWAHL VON ZELLEN UND ZELLBEREICHEN ..............................................................................73

    10.2 EINFGEN VON ZELLEN, ZEILEN UND SPALTEN............................................................................7410.3 ZUWEISEN VON ZELLINHALTEN ...................................................................................................7410.4 LSCHEN VON ZELLINHALTEN UND ZEILEN ..................................................................................7510.5 EINFGEN VON KOMMENTAREN ..................................................................................................7610.6 BENENNEN VON ZELLEN UND ZELLBEREICHEN.............................................................................7710.7 SUCHEN VON ZELLINHALTEN ......................................................................................................7810.8 SUCHEN VON ZELLENINHALTEN BER SCHLEIFEN........................................................................7810.9 SCHRIFTEN, RAHMEN, FARBEN ..................................................................................................80

    10.9.1 Zuordnung von Schriften..................................................................................................8010.9.2 Zuordnung von Rahmen ..................................................................................................8110.9.3 Zuordnung von Farben.....................................................................................................82

    11 AKTIONEN AUF TABELLENBLTTERN.....................................................................................83

    11.1 EINFGEN NEUER TABELLENBLTTER .........................................................................................8311.2 VERSCHIEBEN VON TABELLENBLTTERN .....................................................................................8411.3 TABELLENBLTTER AKTIVIEREN ..................................................................................................84

    12 DIALOGE (TEIL II) .........................................................................................................................85

    12.1 DAS TABELLENBLATT ALS FORMULAR .........................................................................................8512.1.1 Vorbereitende Arbeiten ....................................................................................................85

    12.2 FORMULARSTEUERELEMENTE.....................................................................................................8612.3 EIN TABELLENFORMULAR FFNEN ..............................................................................................8612.4 BEISPIELANWENDUNG 1 .............................................................................................................8712.5 STEUERELEMENTE AUS DER TOOLBOX ........................................................................................93

    12.5.1 Einfgen der Elemente ins Tabellenblatt ......................................................................... 9312.5.2 Eigenschaften der Elemente ............................................................................................93

    12.5.3 Das Bezeichnungsfeld (Label) .........................................................................................9512.5.4 Schaltflchen, Wechselschaltflchen (CommandButton, ToggleButton) ........................9612.5.5 Textfelder (TextBox)......................................................................................................... 9612.5.6 Listen, Kombinationsfelder (ListBox, ComboBox)............................................................ 9712.5.7 Drehfelder, Laufleisten (SpinButton,ScrollBar) ................................................................9912.5.8 Kontrollkstchen, Optionsfelder (CheckBox, OptionButton) ............................................9912.5.9 Verbindung Zelle Steuerelement ................................................................................10012.5.10 Blattschutz ..................................................................................................................100

    12.6 BEISPIELANWENDUNG 2 ...........................................................................................................10012.7 SELBSTDEFINIERTE DIALOGE - USERFORM ...............................................................................106

    12.7.1 Beispiel 1........................................................................................................................10612.7.2 Beispiel 2........................................................................................................................10712.7.3 Beispiel 3........................................................................................................................109

    13 ANHANG......................................................................................................................................113

    13.1 BEISPIELPROGRAMM 1 .............................................................................................................113

  • 7/30/2019 Vba-programmierung Mit Excel Grundlagen

    5/125

    Seite 5

    13.2 BEISPIELPROGRAMM 2 .............................................................................................................11613.3 EINFACHE USERFORM 1 ..........................................................................................................11913.4 EINFACHE USERFORM 2 ..........................................................................................................11913.5 USERFORM 3 ..........................................................................................................................120

    14 SCHLUBEMERKUNG ...............................................................................................................123

    15 LITERATURLISTE .......................................................................................................................125

  • 7/30/2019 Vba-programmierung Mit Excel Grundlagen

    6/125

    Seite 6

    Verzeichnis der AbbildungenAbbildung 1: Tabelle fr die Makroaufzeichnung ................................................... .......................................... 9Abbildung 2: Makrodefinition ........................................................ ........................................................... .......... 10Abbildung 3: Makroaufruf................................................... ........................................................... .................... 11Abbildung 4: Tabelle nach mehrfacher Ausfhrung des Beispielmakros ............................................... .... 11Abbildung 5: Symbolleiste Formular................................................. ....................................................... ........ 13

    Abbildung 6: Schaltflche im Tabellenblatt ................................................ ..................................................... 13Abbildung 7: Zuordnung eines Makros zur Schaltf lche ...................................................... ........................ 13Abbildung 8: Generieren einer Symbolschaltflche zum Makroaufruf.................................................... .... 14Abbildung 9: Schaltflchen - Definitionsmen .................................................... ............................................ 15Abbildung 10: Objekthierarchie von Excel (Ausschnitt) ........................................................ ........................ 18Abbildung 11: Die VB-Symbolleiste .................................................. ....................................................... ........ 21Abbildung 12: Die VBA-Entwicklungsumgebung (hier mit Editor) ................................................. .............. 21Abbildung 13: Der Projekt - Explorer................................................ ........................................................ ....... 22Abbildung 14: Der Objektkatalog...................................................... ........................................................ ........ 23Abbildung 15: Bibliotheksauswahl..................................................... ....................................................... ........ 23Abbildung 16: Suchergebnis im Objektkatalog................................................... ............................................ 24Abbildung 17: Das Fenster des Programmeditors....................................................... .................................. 25Abbildung 18: Methoden- / Eigenschaften - Auswahl ................................................. .................................. 25

    Abbildung 19: Das Direktfenster............................................................ ........................................................... 26Abbildung 20: Das Modulfenster...................................................... ........................................................ ........ 27Abbildung 21: Ergebnis des Prozeduraufrufs ..................................................... ............................................ 54Abbildung 22: MsgBox - Dialogfeld ................................................... ....................................................... ........ 65Abbildung 23: Dialogfeld InputBox .................................................... ....................................................... ........ 66Abbildung 24: INPUTBOX mit dem Ergebnis einer Bereichsmarkierung .................................................. .... 68Abbildung 25: Die Symbolleiste FORMULAR ........................................................ ............................................ 86Abbildung 26: Tabellenblatt des Beispielprogramms .................................................. .................................. 87Abbildung 27: Formularblatt whrend der Datenerfassung.................................................. ........................ 89Abbildung 28: Formularblatt nach Abschlu des Erfassungsvorganges................................................ .... 90Abbildung 29: Datenkorrektur (nur eingetragene Daten sichtbar)................................................. .............. 91Abbildung 30: Inhalt des Blattes Hilfe............................................... ........................................................ ....... 92Abbildung 31: Dialog Eigenschaftenam Beispiel einer Schaltflche...................................................... .... 94Abbildung 32: Unterschiedliche Formen des LABEL -Feldes ................................................ ........................ 95Abbildung 33: Unterschiedliche Formen des Schaltflchen ................................................. ........................ 96Abbildung 34: Formen von Textfeldern ..................................................... ...................................................... 96Abbildung 35: Einfache Listenfelder................................................. ....................................................... ........ 97Abbildung 36: Mehrspaltiges Listenfeld..................................................... ...................................................... 98Abbildung 37: Ein mehrspaltiges Kombinationsfeld .................................................... .................................. 98Abbildung 38: Drehfeld und Laufleiste...................................................... ...................................................... 99Abbildung 39: Options- und Kontrollfelder................................................. ..................................................... 99Abbildung 40: Formularblatt Programmbeispiel 2........................................................ ................................ 101Abbildung 41: Lschabfrage zu Bsp. 2 ...................................................... .................................................... 103Abbildung 42: Online-Hilfe in einer USERFORM .................................................. .......................................... 104Abbildung 43: Formular aus Programm 2 nach Datenerfassung .................................................. ............ 105

    Abbildung 44: VBA - Dialogfenster mit Werkzeugsammlung........................................................ ............ 106

    Abbildung 45: Einfacher VBA-Dialog ................................................ ........................................................ ..... 106Abbildung 46: Einfacher VBA-Dialog (2) ................................................... .................................................... 107Abbildung 47: UserForm des Beispiels 3 ................................................... ................................................... 109Abbildung 48: UserForm mit Password - Abfrage ...................................................... ................................ 109Abbildung 49: Ausgeflltes Buchungsformular.................................................. .......................................... 111Abbildung 50: Buchungstabelle des Programmbeispiels...................................................... ...................... 112

  • 7/30/2019 Vba-programmierung Mit Excel Grundlagen

    7/125

    Einleitung

    Seite 7

    1 EinleitungEXCEL ist bereits in seiner Standardform ein mchtiges Instrument zur Tabellenkalkulationmit vielen Formen und Funktionen der Kalkulation, der Datenanalyse und prsentation. InVerbindung mit VBA (VISUAL BASIC FORAPPLICATIONS) wird es zu einem noch mchtigeren

    Entwicklungssystem, welches es dem Anwender erlaubt, das Spektrum des Programms andie eigenen Bedrfnisse anzupassen und die Anwendungen betrchtlich zu erweitern.

    VBA ist allerdings ein sehr umfangreiches Instrument, dessen Beherrschung stndige bungerfordert. Es enthlt sehr viele Sprachelemente. Deren vollstndige Behandlung wrde denRahmen dieser Broschre sprengen.

    Deshalb erhebt diese Unterlage nicht den Anspruch, VBA vollstndig zu behandeln, sondernnur jene Arbeitsanweisungen vorzustellen, die zur Steuerung von VBA-Programmen und dieErstellung benutzerdefinierter Ablufe bentigt werden. Sie soll den Anwender in die Lageversetzen, das Grundgerst eines VBA-Programms erstellen zu knnen und dieses umAnweisungen zu ergnzen, die eine der zu lsenden Aufgabe angepate Verarbeitungmittels eigener Anwendungen gestatten.

    Zwar sind die interaktiven Funktionen von EXCEL immer flexibler und umfangreichergeworden, parallel dazu hat sich aber auch die Programmierbarkeit entwickelt. Aus einerrecht einfachen Makro Sprache ist eine recht umfangreiche, objektorientierteProgrammiersprache geworden, die den Vergleich mit anderen Entwicklungssystemen nichtfrchten mu.

    Das VBA ist in EXCEL in englischer Sprache implementiert. Die EXCEL Funktionen sindjedoch in der deutschen Version von EXCEL in deutscher Sprache definiert, obwohl VBA sieim Programmcode auf Englisch erwartet.

    Kleiner Tip schon an dieser Stelle:

    Im leeren Tabellenblatt den Makrorekorder starten, Funktion in eine Zelle eintragen und den

    aufgezeichneten Programmcode ins Programm bertragen.

    Fr die erfolgreiche Arbeit mit dieser Unterlage sind mindestens gute Grundkenntnisse vonWINDOWS und EXCEL erforderlich. Vorausgesetzt werden auch zumindest Grundkenntnissedes VB (Visual Basic), weil VB den Sprachkern von VBA liefert.

    Im Text der Unterlage befinden sich am rechten Textrand Hinweiszeichen mit der folgendenBedeutung:

    Tip aus der Praxis

    Hinweis

    Wichtige Hinweise zur Makros, Prozeduren und Funktionen

  • 7/30/2019 Vba-programmierung Mit Excel Grundlagen

    8/125

  • 7/30/2019 Vba-programmierung Mit Excel Grundlagen

    9/125

    Das erste Excel-Programm ein aufgezeichnetes Makro

    Seite 9

    2 Das erste Excel-Programm ein aufgezeichnetes Makro

    EXCEL verfgt, wie alle anderen Office-Programme, ber einen Makro - Recorder, mit demsich Aktionen innerhalb der Tabellenbltter oder Arbeitsmappen aufzeichnen lassen. Diedabei entstehenden Makros sind eine Vorstufe der VBA - Programme. Sie werden vom

    Recorder in den VBA Code umgesetzt und knnen nachtrglich beliebig erweitert werden.In vielen Fllen ist ein aufgezeichnetes Makro ein Grundgerst fr ein VBA Programm oderliefert Teillsungen fr ein solches.

    Aufgezeichnete Makros stoen jedoch recht schnell an ihre Grenzen, z.B.:

    Es lassen sich keine Schleifen verwenden, die eine mehrfache Ausfhrung einer Aktionerlauben.

    An Bedingungen gebundene Sicherheitsabfragen lassen sich beim Aufzeichnen nicht perMausklick definieren, was dazu fhrt, da vor dem Start des Makros alle notwendigenVorkehrungen getroffen werden mssen, welche den korrekten Ablauf garantieren, z.B.die richtige Zelle markiert oder den Cursor richtig positioniert.

    Der Automatisierungsgrad eines Makros ist sehr gering, da i.d.R. nur seriell ablaufendeProzesse aufgezeichnet werden.

    Ein aufgezeichnetes Makro ist damit ein recht ntzliches Werkzeug, welches jedoch nur eineTeilautomatisierung von Ablufen gestattet, die Vollautomatik mu programmiert werden.

    2.1 Makro aufzeichnen

    2.1.1 Eine BeispieltabelleAls Beispiel soll ein Makro aufgezeichnet werden, welches das Einfgen einer Zeile in einebestehende Tabelle incl. dazugehriger erforderlicher Formeln ermglichen soll.

    Die Tabelle soll der Verbuchung von Einnahmen und Ausgaben dienen. Fr jede neueEingabe soll eine neue Zeile erzeugt werden.

    In der Abbildung wurden die bentigten Formeln sichtbar gemacht.

    Das aufzuzeichnende Makro soll nun die folgenden Aufgaben erledigen:

    Eine neue Zeile einfgen (hier Zeile 3).

    In die Spalte E der neuen Zeile die Formel =D3/(1+C3) einfgen.

    In die Spalte G der neuen Zeile die Formel =F3/(1+C3) einfgen.

    Vor der Aufzeichnung eines Makros mu ein definierter Anfangszustand desTabellenblattes hergestellt werden, beispielsweise eine bestimmte Zelle mu markiertwerden. Die Kontextanforderungen sollten mglichst minimal sein.

    Fr das Beispiel gilt, da der Cursor in einer Zeile stehen mu, ber der eine neue Zeileeingefgt werden soll.

    Die aufzuzeichnenden Aktionen sollten vor der Aufzeichnung getestet werden, umunntige Korrekturen im aufgezeichneten Makro zu vermeiden bzw. um nicht unntigmehrfach aufzeichnen zu mssen.

    Abbildung 1: Tabelle fr die Makroaufzeichnung

  • 7/30/2019 Vba-programmierung Mit Excel Grundlagen

    10/125

    Das erste Excel-Programm ein aufgezeichnetes Makro

    Seite 10

    2.1.2 Die MakroaufzeichnungDie Makroaufzeichnung wird ber die Funktionskombination EXTRAS / MAKRO / AUFZEICHNEN

    aufgerufen. Alternativ kann der Schalter der Symbolleiste VISUAL BASIC benutzt werden(einzublenden ber ANSICHT / SYMBOLLEISTEN / VISUAL BASIC).

    Im nach dem Aufruf der Aufzeichnung erscheinenden Dialogfeld NEUES MAKRO AUFZEICHNEN

    sind vor dem Start noch einige Angaben zum Makro zu ttigen:

    Der Makroname(hierN_Zeile), maximal 255 Zeichen lang. Der Name mu mit einemBuchstaben beginnen, Leerzeichen und Bindestriche sind nicht erlaubt. Umlaute imNamen sind zulssig.

    Eine Tastenkombinationzum Starten des Makros (andere Startalternativen siehe weiterim Text). Bei der Eingabe des Buchstabens N im obigen Beispiel wurde die Shift Tastegedrckt gehalten, was die Tastenkombination Strg + Shift +N ergibt. Die Angabe derStart Tastenkombination ist optional.

    Eine Makrobeschreibung Information zur Funktion des Makros (optional).

    Die Makrozuordnung in der Dropdown-Liste MAKRO SPEICHERN IN:

    soll ein Makro der Arbeitsmappe in der er aufgezeichnet wurde, zugeordnet werden, wirdhier DIESE ARBEITSMAPPE gewhlt, die Auswahl PERSNLICHE MAKRO-ARBEITSMAPPEmacht das Makro allgemeinverfgbar in allen Arbeitsmappen.

    Nach dem Bettigen der Schaltflche OK wird die Aufzeichnung gestartet. Ab dem Startwerden alle Aktionen Tastenanschlge, Menauswahl, Anklicken eines Symbols vomMakrorekorder aufgezeichnet. In der Programmoberflche erscheint die mit zweiSchaltflchen versehene Symbolleiste AUFZEICHNUNG:

    ber die linke Schaltflche kann die Aufzeichnung gestoppt werden, die rechte Schaltflchebestimmt, wie die Positionierung des Zellcursors bei der Aufzeichnung interpretiert wird, z.B.beim Wechsel von der Zelle A2 zur Zelle A4:

    als absoluter Bezug gehe zur Zelle A4 (Schaltflche deaktiviert)

    als relativer Bezug gehe zur zweiten Zelle rechts von der aktiven (Schaltflche istaktiviert).

    Standardmig arbeitet der Makrorekorder mit absoluten Bezgen. Damit jedoch dasaufzuzeichnende Makro Zeilen an beliebiger Stelle einfgen kann, ist es ntig fr dieAufzeichnung die Nutzung der relativen Bezge zu aktivieren.

    Die Aufzeichnung luft in den folgenden Schritten ab:

    1. Damit nach der Ausfhrung des Makros eine Zelle in der Spalte A aktiv wird, ist eineZelle dieser Spalte zu aktivieren und anschlieend die Funktionskombination EINFGEN /ZEILEN aufzurufen.

    Abbildung 2: Makrodefinition

  • 7/30/2019 Vba-programmierung Mit Excel Grundlagen

    11/125

    Makro aufzeichnen

    Seite 11

    2. Die Zelle der Spalte E der eingefgten Zeile aktivieren und die Formel (hier am Beispielder Zeile 5) eingeben:

    =D5 / (1+C5)

    3. Die Zelle der Spalte G der eingefgten Zeile aktivieren und die Formel (hier am Beispielder Zeile 5) eingeben:

    =F5 / (1+C5)

    4. Letzte Eingabe mit der ENTER Taste besttigen und die Aufzeichnung ber die linkeSchaltflche der Symbolleiste AUFZEICHNUNG beenden.

    2.1.3 Die Ausfhrung des Makros

    Die in diesem und den folgenden Unterkapiteln beschriebenen Techniken desMakroaufrufs gelten sowohl fr aufgezeichnete Makros als auch insbesondere fr manuell inder VBA Entwicklungsumgebung programmierte VBA-Module.

    Ein aufgezeichneter Makro kann ber die Funktionskombination EXTRAS / MAKRO / MAKROS,

    die den MAKRO Dialog ffnet,gestartet werden:

    Das gewnschte Makro ist aus der Liste (hier nur ein Name) zu whlen und ber dieSchaltflche AUSFHREN zu starten.

    Fr die richtige Funktion des im Beispiel aufgezeichneten Makros ist es wichtig, da vordem Start die Markierung auf einer Zelle der Spalte A steht.

    Das Ergebnis:

    weist noch einige Unzulnglichkeiten insbesondere bezglich der Formatierungen auf. Dieseknnen vor der Aufzeichnung durchgefhrt werden oder whrend der Aufzeichnung, womitdie entsprechenden Anweisungen Bestandteil des Makros werden. Aus Grnden derbersichtlichkeit wurde hier darauf verzichtet.

    Abbildung 3: Makroaufruf

    Abbildung 4: Tabelle nach mehrfacher Ausfhrung des Beispielmakros

  • 7/30/2019 Vba-programmierung Mit Excel Grundlagen

    12/125

    Das erste Excel-Programm ein aufgezeichnetes Makro

    Seite 12

  • 7/30/2019 Vba-programmierung Mit Excel Grundlagen

    13/125

    Zuordnung zu Tastenkombinationen, Schaltflchen und Mens

    Seite 13

    2.2.2 Aufruf ber SchaltflchenFr den Makroaufruf mittels einer in das Tabellenblatt integrierten Schaltflche mu dasSteuerelement Schaltflche eingefgt und konfiguriert werden.

    ber die Funktionskombination ANSICHT / SYMBOLLEISTEN wird die Symbolleiste FORMULAR

    aktiviert (nicht zu verwechseln mit der Leiste STEUERELEMENTE TOOLBOX, die u.a. optischzumindest hnliche Steuerelemente enthlt!).

    In der eingeblendeten Symbolleiste wird das Steuerelement SCHALTFLCHE angeklickt undbei gehaltener linker Maustaste im Tabellenblatt an der gewnschten Position ein Viereck inder Gre der Schaltflche gezeichnet. Nach dem Loslassen der Maustaste erscheint im

    Tabellenblatt eine Schaltflche. Die Gre, Position und Beschriftung knnen nachtrglichnoch verndert werden.

    Mit dem Loslassen der Maustaste wird ebenfalls ein Dialogfenster fr die Zuordnung einesMakros zu der eingefgten Schaltflche eingeblendet:

    Die Zuordnung wird durch die Markierung des gewnschte Makros (hier nur ein Name) undBettigen der Schaltflche OK erreicht.

    Solange sich die in das Tabellenblatt eingefgte Schaltflche noch im Bearbeitungsmodusbefindet (s. Abbildung 6) kann durch Ziehen mit der Maus ihre Position verndert werden(den Rahmen anklicken, nicht die Schaltflche !) bzw. ber die Ziehkstchen ihre Gre.

    Die Beschriftung der Schaltflche kann beliebig nach dem Markieren des Textes innerhalbder Flche verndert werden.

    Sobald ein Mausklick neben die Schaltflche (ins Tabellenblatt) erfolgt, ist die Schaltflcheaktiv. Ein Klick darauf startet das zugeordnete Makro.

    Bitte beachten: Vor der Ausfhrung des Beispielmakros mu eine Zelle in der ersten

    Spalte markiert sein, da sonst keine korrekte Ausfhrung mglich ist.

    Abbildung 5: Symbolleiste Formular

    Abbildung 6: Schaltflche im Tabellenblatt

    Abbildung 7: Zuordnung eines Makros zur Schaltflche

  • 7/30/2019 Vba-programmierung Mit Excel Grundlagen

    14/125

    Das erste Excel-Programm ein aufgezeichnetes Makro

    Seite 14

    Soll die Schaltflche nach der Aktivierung nachtrglich bearbeitet werden, kann es nurim Bearbeitungsmodus geschehen. Dieser ist nur erreichbar, wenn beim Mausklick (linkeMaustaste) die STRG-Taste gedrckt wird.

    Fr die Praxis sollte das Verhalten einer Schaltflche bezglich der nderung von

    Zellengren im Tabellenblatt oder beim Einfgen von Zeilen und Spalten festgelegt werden.Die Schaltflche kann sich an der Zellengre, an der Zellenposition oder an beidenorientieren. Dabei ist zu beachten:

    Ein Steuerelement (hier Schaltflche) sollte mglichst nur eine Zelle berdecken.berdeckt es mehrere Zellen, reagiert es auf nderungen der Zellgren und Positionen.

    Soll ein ber die Grenzen einer Zelle hinausragendes Steuerelement bei Vernderungder Abmessungen der Zelle unverndert bleiben, mu bei aktiviertem Element ber dieFunktionskombination FORMAT / STEUERELEMENT / EIGENSCHAFTEN die Dialogoption VONZELLPOSITION UNDGRE UNABHNGIG aktiviert werden.

    Soll ein in einer Zelle positioniertes Steuerelement mit dieser Zelle wandern (z.B. beimEinfgen oder Lschen von Zeilen / Spalten), ist in der o.g. Funktionskombination die

    Option NUR VON ZELLPOSITION ABHNGIG zu aktivieren.

    2.2.3 Aufruf ber SymbolleistenFr den Aufruf ber eine Symbolleiste ist eine Schaltflche in einer der vorhandenen odereiner neuen Symbolleiste1 ntig. Die Erstellung und Zuordnung ist in folgenden Schrittenmglich:

    Die Funktionskombination EXTRAS / ANPASSEN whlen.

    Im Dialogfenster ANPASSEN die Registerkarte BEFEHLE whlen und darin im FeldKATEGORIEN die Kategorie MAKROS markieren.

    Aus der Liste BEFEHLE den Eintrag SCHALTFLCHE ANPASSEN bei gedrckter linkerMaustaste in eine Symbolleiste ziehen.

    1 Eine neue Symbolleiste wird ber die Funktionskombination EXTRAS / ANPASSEN / SYMBOLLEISTEN / NEU erstellt.

    Abbildung 8: Generieren einer Symbolschaltflche zumMakroaufruf

  • 7/30/2019 Vba-programmierung Mit Excel Grundlagen

    15/125

    Zuordnung zu Tastenkombinationen, Schaltflchen und Mens

    Seite 15

    ber die Schaltflche AUSWAHLNDERN wird ein Kontextmen aufgerufen, welches eineMakrozuordnung zum Symbol ermglicht, sowie zustzliche Definitionspunkte zurKonfiguration des Symbols bietet.

    Erst nachdem alle Definitionsschritte abgeschlossen sind, wird der Dialog ANPASSENgeschlossen.

    ber einen rechten Mausklick auf ein Symbol kann das o.g. Kontextmen ebenfallsaufgerufen werden, wenn beispielsweise nachtrglich die Definition eines Schaltsymbolsverndert werden soll.

    Abbildung 9: Schaltflchen- Definitionsmen

  • 7/30/2019 Vba-programmierung Mit Excel Grundlagen

    16/125

  • 7/30/2019 Vba-programmierung Mit Excel Grundlagen

    17/125

    VBA Grundlagen

    Seite 17

    3 VBA GrundlagenVBA Visual Basic for Applications ist eine objektorientierte Makroprogrammiersprache miteiner sehr umfangreichen Auswahl von Funktionen und Anweisungen zur Erstellungeigenstndiger Programme, die MS Office Anwendungen automatisieren und oft aus der

    Sicht des Anwenders komplexe Ablufe in Ihrer Bedienung vereinfachen.VBA Module unterscheiden sich je nach Office Produkt in Ihrer Struktur, hier sollen dieSpezifika des Excel VBA in ihren Grundrissen vorgestellt werden.

    VBA Module sind vom Sprachumfang her in zwei inhaltliche Bereiche teilbar:

    Den die Programmstruktur definierenden Sprachkern, der mit dem von VB (Visual Basic)gleichzusetzen ist, mit Schlsselwrtern, Befehlen, Funktionen und Kontrollstrukturen,die fr alle Office Anwendungen gelten.

    Die anwendungsspezifischen Objektmodelle, mit eigenen, den Anwendungenangepaten OBJEKTEN, EIGENSCHAFTEN, EREIGNISSEN und METHODEN.

    Da insbesondere diese vier Begriffe immer wieder als Grundbegriffe der objektorientiertenProgrammierung im Zusammenhang mit VBA auftreten und somit auch im Inhalt dieserUnterlage fter vorkommen, sollen sie im folgenden vorgestellt werden.OBJEKTE stellen einen zentralen Bestandteil fast aller VBA Anwendungen dar. Es sindbestimmte Teile einer Anwendung Excel selbst, die Arbeitsmappe, das Tabellenblatt,Zellen (-bereiche).

    Objekte besitzen EIGENSCHAFTEN (benannte Attribute), beispielsweise Gre, Farbe,Position, Name usw..

    Das Verhalten eines Objekts wird ber die METHODEN (= Prozeduren), die auf ein Objektangewandt werden, bestimmt.

    3.1 Objekte und ihre Hierarchie

    Excel besteht aus mehr als 200 Objekten, deren Eigenschaften und Methoden freizugnglich sind. Zu den wichtigsten Objekten zhlen:

    APPLICATION Excel selbst / Excel Fenster

    WORKBOOK Die Excel Arbeitsmappe

    WORKSHEET Ein Tabellenblatt

    RANGE Zellenbereich , bestehend aus einer oder mehrerer Zellen

    Die Objekte stehen in hierarchischer Abhngigkeit zueinander. Objekte hherer Stufebeinhalten Objekte untergeordnet Stufe(n). Fr o.g. Objekte gilt die Hierarchieordnung.

    Workbook

    Application

    Worksheet

    Range

  • 7/30/2019 Vba-programmierung Mit Excel Grundlagen

    18/125

    VBA Grundlagen

    Seite 18

    Die gesamte Objekthierarchie ist natrlich wesentlich komplizierter und umfangreicher. Diefolgende Abbildung vermittelt einen erweiterten Ausschnitt:

    Fr die Programmierung ist es wichtig zu wissen, da die Objekthierarchie nicht nur einwillkrliches Ordnungsschema ist. Die Kenntnis der festgelegten Position eines Objekts inder Hierarchie ist ntig, um das Objekt zu referenzieren darauf zuzugreifen.

    Beispiel:

    Worksheets("WS1999/2000").Range("A7")

    Eine besondere Form von Objekten bilden die AUFLISTUNGEN (Collections). Es sind Gruppengleichartiger Objekte, zusammengefat in einem Container der Auflistung, z.B. die

    Auflistung WORKSHEETS, die alle Tabellenbltter einer Arbeitsmappe enthlt.

    Abbildung 10: Objekthierarchie von Excel (Ausschnitt)

  • 7/30/2019 Vba-programmierung Mit Excel Grundlagen

    19/125

    Eigenschaften

    Seite 19

    3.2 Eigenschaften

    Whrend ein Objekt weitgehend abgeschlossen ist, d.h. sein innerer Aufbau lsst sich i.d.R.nicht beeinflussen, lassen sich seine EIGENSCHAFTEN per Programmanweisung in vielenFllen verndern. Die Vernderung der Eigenschaften nimmt oft einen wesentlichen Teil

    eines Programms ein.Eigenschaften sind benannte Attribute eines Objekts. Sie bestimmen seine Charakteristikawie Gre, Farbe oder Bildschirmposition, aber auch den Zustand, wie beispielsweiseaktiviertoderdeaktiviert.

    Es gibt Eigenschaften, die lesbar und vernderbar sind, z.B. Value (Wert) oder Name(Name), andere lassen sich nur abfragen, aber nicht verndern es sind sog. Nur Lese Eigenschaften.

    Zu den Eigenschaften, die besonders oft verndert werden, gehren:

    CAPTION Beschriftungen von Objekten

    NAME Die Bezeichnung eines Objekts, unter der es angesprochen(referenziert) wird.

    SELECTION Bezeichnet das markierte Application Objekt.

    VALUE Wert / Inhalt eines Objekts (Zellinhalt, Textfeld Eintrag)

    Alle Eigenschaften haben immer einen aktuellen Wert. Die Anzahl mglicher Werte istunterschiedlich gro. So besitzen beispielsweise die Eigenschaften Color oder Value sehrviele Werte, whrend andere, beispielsweise Selected, nur die Werte False oder Trueannehmen.

    Beispiel:

    Worksheets("WS1999/2000").Range("A3:D7").Value = 55

    Die Anweisung weist allen Zellen des Zellbereichs A3:D7 des Tabellenblatts WS1999/2000

    den Wert 55zu.

    3.3 Methoden

    Zu den Objekten gehren neben Eigenschaften auch METHODEN. ber Methoden lt sichdas Verhalten von Objekten steuern / verndern. Eine Methode ist eine Aktion, die eineOperation auf einem Objekt ausfhren kann. Zu den am hufigsten benutzten Methodengehren:

    OPEN ffnet eine Arbeitsmappe

    CLOSE schliet eine Arbeitsmappe (ein Workbook-Objekt) oder Excel(ein Application-Objekt).

    CLEAR lscht einen Zellbereich oder ein Diagramm.AKTIVATE aktiviert ein Objekt

    SELECT whlt ein Objekt aus

    Fr den Einsteiger ist es oft problematisch zwischen Eigenschaften und Methoden zuunterscheiden (insbesondere wenn Methoden die gleichen Namen tragen wie beispielsweiseAuflistungen). So sind beispielsweise die beiden Anweisungen:

    Assistant.Visible = true

    Assistant.Move 250,275

    zumindest optisch sehr hnlich. Es stellt sich die Frage - sind VISIBLE und MOVE

    Eigenschaften oder Methoden und wenn nicht welches Element von beiden ist eine Methodeund welches ein Eigenschaft.

  • 7/30/2019 Vba-programmierung Mit Excel Grundlagen

    20/125

    VBA Grundlagen

    Seite 20

    Die Antwort ist hier relativ einfach: Bei Zuweisungen von Eigenschaften wird dasGleichheitszeichen benutzt, bei Methoden benutzt man (optionale) Parameter ohneGleichheitszeichen.

    Bei der Programmierung in der VBA Umgebung wird die Entscheidung Eigenschaft /Methode zustzlich durch spezifische Symbole in entsprechenden Auswahlfenstern

    erleichtert (s. weiter im Text).brigens: Beide Anweisungen beziehen sich auf den Assistenten Karlchen Klammer dieerste mach ihn sichtbar, die zweite verschiebt Ihn entsprechend den angegebenenParametern.

    3.4 Ereignisse

    Fr die meisten Objekte sind explizite Ereignisse definiert, denen fest zugeordneteEreignisprozedurenzugehren. Ereignisse knnen Aufrufe von Menfunktionen, Anklickenvon Schaltern, Symbolen und Tasten aber auch ffnen von Dokumenten, Berechnungen,Vernderungen von Inhalten usw. Allgemein gesehen - Mausklicks, Tastatureingaben undsysteminterne Aktionen lsen Ereignisse aus, auf die ber entsprechende Prozeduren

    reagiert werden mu.

  • 7/30/2019 Vba-programmierung Mit Excel Grundlagen

    21/125

    Die Entwicklungsumgebung

    Seite 21

    4 Die EntwicklungsumgebungExcel wird zusammen mit einer kompletten Entwicklungsumgebung ausgeliefert. DieEntwicklungsumgebung ist eine eigenstndiges Programm, mit einem eigenenFenstersystem und eigenen Symbolleisten. Der Aufruf kann auf unterschiedlichen Wegen

    erfolgen: ber die Tastenkombination ALT + F11.

    ber die Funktionskombination EXTRAS / MAKRO / VISUAL BASIC EDITOR (fr dieErstellung eines neuen Moduls).

    ber die Funktionskombination EXTRAS MAKRO / MAKROS, markieren einesMakronamens und Bettigen der Schaltflche BEARBEITEN (fr die Bearbeitung einesschon existierenden Makros).

    ber die Schaltflche VISUAL BASIC EDITOR der VISUAL BASIC Symbolleiste(einblenden ber ANSICHT / SYMBOLLEISTEN).

    Nach dem Aufruf wird das Fenster der Entwicklungsumgebung geffnet. Existiert fr diegeffnete Arbeitsmappe noch kein Makro, wird das Fenster ohne den Editor geffnet. DasEditor Fenster kann der Oberflche ber die Funktionskombination Einfgen / Modulhinzugefgt werden:

    Der Wechsel zwischen der Entwicklungsumgebung und der Excel Oberflche erfolgtber die Tastenkombination ALT + F11, die Funktionskombination ANSICHT / MICROSOFT

    EXCEL oder die Excel Schaltflche in der Symbolleiste.

    Die Entwicklungsumgebung wird geschlossen ber die Systemschaltflche (oben rechtsim Fenster), die Tastenkombination ALT + Q oder die Funktionskombination DATEI /SCHLIEEN UND ZURCK ZU MICROSOFT EXCEL. Wird Excel beendet, so wird auch dieEntwicklungsumgebung automatisch geschlossen.

    Abbildung 11:Die VB-Symbolleiste

    Abbildung 12: Die VBA-Entwicklungsumgebung (hier mit Editor)

  • 7/30/2019 Vba-programmierung Mit Excel Grundlagen

    22/125

    Die Entwicklungsumgebung

    Seite 22

    4.1 Der Projekt-Explorer

    Der Projekt Explorer (Projektfenster) ist ein Werkzeug zu Verwaltung von Komponentengespeicherter VBA - Projekte. Beim Start der Entwicklungsumgebung wird der Explorerstandardmig geffnet.

    Er kann nachtrglich ber die Funktionskombination ANSICHT / PROJEKTEXPLORER,

    die Tastenkombination STRG + R

    das ExplorerSymbol in der Symbolleiste

    geffnet werden.

    Der Projekt - Explorer zeigt alle geffneten Excel Arbeitsmappen (PROJEKTE genannt), ihreTabellenbltter und zu dem Projekten gehrende Module.

    In der obigen Abbildung ist das VBA Projekt Projektbersicht.xls geffnet. Zu diesemProjekt gehrt das Excel Objekt Arbeitsmappemit zwei Tabellen (Tabelle 1 und Tabelle 2)sowie zwei Module(Modul 1 und Modul 2)

    ber die Symbole der Symbolleiste erhlt man Zugang zu den angezeigten Elementen:

    Ist diese Schaltflche aktiv, werden Tabellenbltter, Module und eventuell vorhandeneDialoge (Formulare) in der Form derAbbildung 13 angezeigt, andernfalls wird nur dasProjekt (oberste Zeile in der Abb.) und die Einzelelemente (die innerste Ebene in der Abb.)zur Anzeige gebracht.

    Ein Mausklick auf diese Schaltflche bewirkt die Anzeige eines markierten Elements(Tabelle, Diagramm, Modul, Formular). Ist beispielsweise eine Tabelle markiert, erfolgt nachdem Mausklick ein Wechsel zu Excel.

    Mit diesem Schalter wird der Editor geffnet und der dem markierten Element

    zugeordneter Programmcode geladen. Gleichen Effekt erzielt man durch einen Doppelklickauf ein Element im Explorer Fenster.

    Das Fenster des Projekt Explorers wird hnlich dem des Windows Explorers bedient ber die Plus- und Minussymbole knnen die untergeordneten Objekte ein- bzw.ausgeblendet werden.

    Abbildung 13: Der Projekt - Explorer

  • 7/30/2019 Vba-programmierung Mit Excel Grundlagen

    23/125

    Der Objektkatalog

    Seite 23

    4.2 Der Objektkatalog

    Die hohe Anzahl von Objekten, Eigenschaften, Methoden und Funktionen, die im VBA zurVerfgung stehen, macht es fast unmglich, den Zweck, die Anwendung und insbesondereauch die Syntax stndig parat zu haben. Hilfe bietet hier der OBJEKTKATALOG.

    Der Objektkatalog enthlt in einem zweigeteilten Fenster die Auflistung aller verfgbarenObjekte. Im linken Teilfenster (KLASSEN) erscheint eine Liste der Objekte, im rechten(ELEMENTE VON ...) die zu einem markierten Objekt gehrenden Eigenschaften und / oderMethoden:

    Das Fenster des Objektkatalogs wird geffnet ber

    die Taste F2

    die Funktionskombination Ansicht / Objektkatalog

    die Schaltflche Objektkatalog in der Symbolleiste.

    An Symbolen im Fenster des Objektkatalogs ist erkennbar, um welche Elemente es sich

    handelt:Objekt / Klasse

    Modul

    Auflistung

    Eigenschaft

    Ereignis

    Methode / Funktion

    KonstanteIm unteren Bereich des Fensters des Objektkatalogs befindet sich ein Bereich, in dem dieSyntax des ausgewhlten Objekts, inklusive aller eventueller Parameter angezeigt wird.Zustzlich wird der Datentyp und Zugehrigkeit zur Objektbibliothek angezeigt somit ist dieInformation komplett.

    Nach dem Aufruf des Objektkataloges werden i.d.R. die Objekte aller Objektbibliothekenangezeigt. Dadurch ist die Suche wegen der groen Menge von Eintrgen etwasumstndlich. Sie lt sich jedoch vereinfachen, wenn man die Anzahl angezeigter Objekteber das im oberen Bereich des Fensters plazierte Dropdown Feld einschrnkt:

    Abbildung 14: Der Objektkatalog

    Abbildung 15: Bibliotheksauswahl

  • 7/30/2019 Vba-programmierung Mit Excel Grundlagen

    24/125

    Die Entwicklungsumgebung

    Seite 24

    Neben der Auswahl ALLE BIBLIOTHEKEN knnen einschrnkend die zur Standardinstallationgehrenden Teilbibliotheken gewhlt werden:

    EXCEL Die Excel Bibliothek mit Eigenschaften, Ereignissen, Methoden undKonstanten zur Manipulation von Excel Objekten.

    MSFORMS Bibliothek mit Eigenschaften, Methoden und Ereignissen zur Manipulation

    von Steuerelementen (Schaltflchen, Dropdown-Listen usw.).VBA Bibliothek mit allen VBA Funktionen, Eigenschaften und Konstanten.

    VBA-PROJEKT Bibliothek mit Methoden, Eigenschaften, Funktionen, die zu einergeffneten Arbeitsmappe bzw. den einzelnen Tabellenblttern dieserArbeitsmappe gehren. Hierzu gehren auch selbst erstellte Makros undFunktionen. In der Auswahlliste erscheint nicht der Eintrag VBA-Projekt,sondern der Name der geffneten Arbeitsmappe.

    ber ein zweites Dropdown-Feld (s. Abbildung 15) kann gezielt nach einzelnen Objekten,Auflistungen, Methoden und Eigenschaften gesucht werden. Der Suchbegriff (auchunvollstndige Angabe mglich s.Abbildung 16) wird in das Eingabefeld der Dropdown Liste eingegeben und ber das Lupensymboldie Suche gestartet. Das Suchergebnis wird ineinem separaten Teilfenster des Objektkataloges angezeigt:

    Ein Mausklick auf ein Element des Teilfensters SUCHERGEBNISSE bewirkt die Anzeige derInformationen zur ausgewhlten Position im Syntaxbereich des Fensters.

    Die rechts neben dem Luppensymbol liegende Schaltflche blendet die Suchergebnissewieder aus.

    Die bernahme von Elementen aus dem Fenster des Objektkatalogs in das Editor

    Fenster ist relativ umstndlich geregelt sie kann leider nur ber die Zwischenablagerealisiert werden: Ist das gewnschte Element markiert, wird ber die Schaltflche KOPIEREN der

    Symbolleiste, die Funktionskombination BEARBEITEN / KOPIEREN oder dieTastenkombination STRG + C in die Zwischenablage kopiert.

    Anschlieend wird in das Editor Fenster gewechselt, der Cursor an der Einfgepositionplaziert und ber die Schaltflche EINFGEN der Symbolleiste, die FunktionskombinationBEARBEITEN / EINFGEN oder die Tastenkombination STRG + V eingefgt.

    Abbildung 16: Suchergebnis im Objektkatalog

  • 7/30/2019 Vba-programmierung Mit Excel Grundlagen

    25/125

    Der Programmeditor

    Seite 25

    4.3 Der Programmeditor

    Die Zentralstellung in der Entwicklungsumgebung nimmt das Fenster des Programmeditors(auch Code Fenster genannt) ein. Hier wird der Programmcode der Module eingegeben.Der Editor kann nicht direkt aufgerufen werden. Sein Fenster wird automatisch geffnet,

    wenn ein Modul geffnet oder neu erzeugt wird (Funktionskombination EINFGEN / MODULder Entwicklungsumgebung).

    Das Fenster zeigt immer alle Makros eines Moduls an. ber die rechts oben liegendeDropdown Liste kann zwischen den einzelnen Makros gewechselt werden. Bei der Eingabe

    werden Informationen zur Syntax benutzter Funktionen eingeblendet (s.o.).Bei der Eingabe einer Objektreferenz wird, sobald der Ausdruck mit einem Punktabgeschlossen wird, eine Auswahlliste der fr das Objekt mglichen (verfgbaren)Eigenschaften und Methoden:

    Per Doppelklick oder Markieren und Bettigen der Tabulatortaste kann die gewnschteEigenschaft / Methode aus der Liste in den Programmtext bernommen werden.

    Der Editor prft schon whrend der Eingabe die Syntax. Die Prfung erfolgt sofort nachAbschlu eines sinnvollen Teilausdrucks und nicht erst nach der Eingabe einer komplettenAnweisung.

    Die sofortige Syntaxprfung kann zu Fehlermeldungen fhren, die durch dieUnvollstndigkeit eines Ausdrucks bedingt sind. Wird die Anweisung jedoch beendet, ist die

    Fehlermeldung irrelevant und damit verschwunden.Die Programmzeilen erscheinen im Editor Fenster in unterschiedlichen Farben:

    schwarz fehlerfreie Programmzeilen, Bezeichner, Objektnamen,Eigenschaften und Methoden.

    grn Kommentarzeilen

    blau VBA Schlsselwrter

    rot Compiler Fehler, auch unvollstndige oder fehlerhafteAusdrcke; nach Korrektur bzw. Ergnzung Wechsel zuschwarz.

    Weitere Hinweise zum Editor Fenster siehe Broschre VBA GRUNDLAGEN.

    Abbildung 17: Das Fenster des Programmeditors

    Abbildung 18: Methoden- / Eigenschaften - Auswahl

  • 7/30/2019 Vba-programmierung Mit Excel Grundlagen

    26/125

    Die Entwicklungsumgebung

    Seite 26

    4.4 Das Direktfenster

    Fr das schnelle Testen von Anweisungen kann das DIREKTFENSTER benutzt werden. berdie Funktionskombination ANSICHT / DIREKTFENSTER oder die Tastenkombination STRG + Ggeffnet,

    ermglicht es die Kontrolle einzelner Anweisungen.

    In der obigen Abbildung wird beispielsweise in der ersten Anweisung der aktiven Zelle eines

    Tabellenblattes der Wert 10 zugeordnet, die mit einem Fragezeichen ? beginnenden Zeilenfhren Operationen auf der aktiven Zelle aus und geben unmittelbar das Ergebnis in dasDirektfenster aus, die Zeile mit DEBUG.PRINT gibt den Wert der aktiven Zelle zur Laufzeit aus.

    Abbildung 19: Das Direktfenster

  • 7/30/2019 Vba-programmierung Mit Excel Grundlagen

    27/125

    Das Sprachkonzept von VBA

    Seite 27

    5 Das Sprachkonzept von VBABevor die VBA Sprachelemente vorgestellt werden, sollen einige Voraussetzungen fr dieVBA- Programmierung erlutert werden:

    Module

    Ein aufgezeichneter Makro oder ein manuell erstellter Programmcode mssen im Projektgespeichert werden. Dafr wird ein Art Container benutzt ein Modul. Erzeugt wird einModul ber die Funktionskombination EINFGEN / MODUL der Entwicklungsumgebung.

    Der erste Aufruf ffnet ein leeres Fenster des Editors mit dem allgemeinen Bereich des

    Moduls, in dem i.a. Deklarationen von Variablen und Konstanten bzw. Informationen(Anweisungen), die fr das gesamte Modul Gltigkeit haben sollen, untergebrachtwerden (Anfangsbereich oder Deklarationsbereich eines Moduls).

    ProzedurenProzeduren sind Gruppen von Anweisungen, als kleinste selbstndige Einheiten einesVBA Programms. Sie haben ein festes Gerst sie beginnen mit der Anweisung Subund enden mit End Sub:

    Sub Rechnen ().Anweisungen.End Sub

    Der Anweisung Sub folgt der PROZEDURNAME. Dieser darf maximal 255 Zeichen langsein, sollte auer dem Unterstrich keine Sonderzeichen enthalten. Das erste Zeichenmu ein Buchstabe sein, das Leerzeichen und der Bindestrich sind nicht zulssig.

    Zu beachten sind die Argumentklammern auch wenn keine Argumente bergebenwerden, mssen diese Klammern gesetzt werden. Beim Schreiben der Anweisung setztder Editor die Klammern automatisch.

    AnweisungenEine Anweisung ist eine syntaktische Codeeinheit fr Definitionen, Deklarationen oderOperationen. Pro Programmzeile wird normalerweise eine Anweisung geschrieben. Solleine Programmzeile mehrere Anweisungen enthalten, mssen diese durch einenDoppelpunkt (:) voneinander getrennt sein.

    Eine Anweisung kann ausfhrbar oder nicht ausfhrbar sein. Nicht ausfhrbareAnweisungen setzen den logischen Programmablauf nicht fort, da sie i.d.R. nurDefinitionen bzw. Deklarationen enthalten.

    Gro- und KleinschreibungGrundstzlich wird zwischen Gro- und Kleinschreibung bei Namen von Subs,Funktionen oder Variablen nicht unterschieden. Werden der besseren Lesbarkeit wegenGro- und Kleinbuchstaben benutzt, so behlt VBA die Schreibweise der Namen bei.

    Argumente in Funktionen und MethodenWerden, anders als in Excel durch Kommata und nicht durch Semikolons voneinandergetrennt:

    MsgBox "Auswertung", vbOKOnly

    Abbildung 20: Das Modulfenster

  • 7/30/2019 Vba-programmierung Mit Excel Grundlagen

    28/125

    Das Sprachkonzept von VBA

    Seite 28

    Argumentenklammern sind nur dann erforderlich, wenn ein Rckgabewert auszuwertenist, d.h. wenn der Term mit der Funktion oder Methode rechts vom Gleichheitszeichensteht:

    Ausw = MsgBox("Auswertung", vbOKOnly )

    Argumentenwerte werden mit Hilfe des Operators := und Argumentenbezeichnungen

    zugewiesen (nicht mit dem normalen Gleichheitszeichen).MsgBox Prompt := "Auswertung", Buttons := vbOKOnly

    Die Verwendung dieser Methode ist insbesondere dann empfehlenswert, wenn nicht alleArgumente belegt werden sollen. Bei der einfacheren Methode (s. erstes Beispiel)mssen fr alle nicht belegten Argumente Kommata als Platzhalter angegeben werden,wenn das / die folgenden Argumente benutzt werden. Dieses entfllt bei der direktenZuweisung. Auch die Reihenfolge der Argumente ist dann beliebig.

    KommentarzeilenKommentarzeilen werden in VBA Programmen durch ein Hochkomma als erstesZeichen der Zeile gekennzeichnet. Gltige Anweisungen knnen durch Voranstelleneines Hochkommas inaktiviert werden.

    Ausgabe einer Meldung

    MsgBox Prompt := "Auswertung", Buttons := vbOKOnly

    Auch nachgestellte Kommentare sind mglich:

    MsgBox Prompt := "Auswertung", Buttons := vbOKOnly Ausgabe Meldung

    Mehrzeilige Anweisungen

    knnen mittels des Unterstrichs _ gebildet werden. Allerdings kann der Umbruch nicht aneiner beliebigen Stelle geschehen nur vor oder hinter Elementen eines Ausdrucks ist ererlaubt. Vor dem Unterstrich mu ein Leerzeichen stehen:

    MsgBox "Es wurde ein falscher Wert eingegeben", _vbOKOnly _

    "Eingabefehler"Hinter einem Unterstrich darf kein Kommentar eingefgt werden.

    Bei Fortsetzungen in Zeichenketten mssen diese durch ein Anfhrungsszeichenabgeschlossen werden und mit dem Verknpfungsoperator& verknpft werden:

    MsgBox "Es wurde ein falscher" & _"Wert eingegeben", _vbOKOnly _"Eingabefehler"

  • 7/30/2019 Vba-programmierung Mit Excel Grundlagen

    29/125

    Datentypen

    Seite 29

    5.1 Datentypen

    VBA kennt die folgenden Datentypen (Variablentypen):

    Typ Platzbedarf /Bytes) WertebereichByte 1 0 bis 255

    Boolean 2 True / FalseCurrency 8 Festkommazahl mit 15 Stellen vor und 4

    Stellen nach dem KommaDate 8 Datum und Uhrzeit, Datum: 01.01.0100 bis

    31.12.9999, Uhrzeit: 00:00 bis 23:59:59Double 8 Fliekommazahl mit 16 Stellen GenauigkeitInteger 2 -32.768 bis 32.767 Ganzzahl !Long 4 -2.147.483.648 bis 2.147.483.647

    Ganzzahl !Object 4 Jeder ObjektverweisSingle 4 Fliekommazahl mit 8 Stellen GenauigkeitString (fest) Zeichenfolgenlnge 1 bis 65400 ZeichenString 10 + 2 pro Zeichen Zeichenzahl ab Vers.4 nur durch RAM

    beschrnktVariant (numerisch) 16Variant (alphanumerisch) 22 + TextlngeBenutzerdefiniert wie Einzelelemente wie Einzelelemente

    Hinweis:

    Der Datentyp Variant ist ein universeller Datentyp. Er gilt als Voreinstellung fr alleVariablen, fr die kein expliziter Datentyp per Deklaration angegeben wird. Variablen mitdem Datentyp Variantpassen sich automatisch den in ihnen gespeicherten Daten an.Dieser Datentyp ist allerdings nicht optimal handhabbar er ist sehr speicheraufwendig,Variablen mit diesem Typ knnen innerhalb des Programms ihren Datentyp beliebigwechseln, was zu unntigen Fehlermeldungen fhren kann, wenn beispielsweise mit

    Zeichenketten und numerischen Werten gerechnet wird.Es wird daher empfohlen, mglichst den Variablen andere, zu den Werten optimalpassende Datentypen der Deklaration zuzuweisen (siehe auch weiter im Text).

    Dim Variable1Variable1 = "123"

    .Variable1 = Variable1 + 20

    .Variable1 = "ABC" & Variable1

    Nach der ersten Zuweisung enthlt Variable1 die Zeichenkette 123 (ist alsoalphanumerisch), nach der zweiten den Zahlenwert 143 (numerisch) und nach der drittenwiederum eine Zeichenkette ABC143 (alphanumerisch).

    5.2 Operatoren, Operanden, Ausdrcke

    Bei der Durchfhrung von Berechnungen oder der Arbeit mit Zeichenfolgen werden in derRegel Ausdrcke, Operatoren und Operanden verwendet.

    5.2.1 AusdrckeEin AUSDRUCK besteht aus Konstanten, Variablen, Funktionen oder anderen Ausdrcken, diemit Hilfe von Operatoren verknpft sind. Je nach Wert, den ein Ausdruck reprsentiert,spricht man von einem numerischen, alphanumerischen, logischen oder Datumsausdruck.Als Operanden eines Ausdrucks knnen einfache Werte (Ziffern, Zeichen allgemein),Variable, Konstante, aber auch VBA Funktionen, Methoden bzw. selbst definierte

    Funktionen benutzt werden.

  • 7/30/2019 Vba-programmierung Mit Excel Grundlagen

    30/125

    Das Sprachkonzept von VBA

    Seite 30

    5.2.2 OperatorenOperatoren verknpfen und manipulieren Variablen, Werte und Ausdrcke. Im VBAexistieren vier Kategorien von Operatoren, die sich nach den vier Grunddatentypenorientieren: Zahl, Zeichen(kette), logisch und Datum.Die Operatoren unterliegen bestimmten Vorrangregeln. Diese bestimmen die Reihenfolge

    der Ausfhrung der Operationen, insbesondere wenn im Ausdruck mehrere Operatorenvorkommen.Generell gilt fr die Operatoren die Regel Punktrechnung vor Strichrechnung, allerdings istes kaum mglich, generelle Regeln fr die Rangfolge der Operationen festzulegen,insbesondere wenn in Ausdrcken Operatoren verschiedener Kategorien vorkommen.

    5.2.2.1 Arithmetische Operatoren

    VBA unterscheidet insgesamt sieben arithmetische Operatoren:

    Operator Bedeutung+ Addition- Subtraktion / Negation* Multiplikation/ regulre Division\ ganzzahlige Division^ Potenzierung

    Mod Modulo

    Fr die arithmetischen Operatoren gelten die blichen Vorrangregeln (Punkt vor Strich).Andere Reihenfolge der Operationen mu evtl. durch Klammern festgelegt werden.

    5 + 6 * 8

    (5 + 6) * 8

    Das Ergebnis einer arithmetischen Operation bernimmt den Datentyp des Operanden mitder grten Genauigket (in der Reihenfolge: Currency, Double, Single, Long, Integer)

    5.2.2.2 Vergleichsoperatoren

    Vergleichsoperatoren knnen auf fast allen Datentypen angewandt werden. Das Ergebnisdes Vergleichs ist ein Wahrheitswert - entweder TRUE oder FALSE. Besitzt einer der zuvergleichenden Ausdrcke den Wert NULL ist das Ergebnis des Vergleichs ebenfalls NULL.

    Der Wert NULL tritt oft bei Vergleichen von Variablen, von denen eine einen ungltigenWert enthlt, auf.

    Vergleichsoperationen knnen im VBA mit Hilfe folgender Operatoren durchgefhrt werden:

    Operator Bedeutung< kleiner als

    grer als

    >= grer oder gleich= gleich

    ungleichIs Objektvergleich

    Like Mustervergleich

    Die zu vergleichenden Ausdrcke mssen vom Typ her vertrglich sein.Zustzlich gehren in den Bereich der Vergleichsoperatoren noch zwei, in der Tabelle nichtaufgefhrte Operatoren: IS vergleicht zwei Variablen in Bezug darauf, ob sie auf dasselbe Objekt verweisen:

    Ergebnis = Objekt1 Is Objekt2Wenn sowohl Objekt1 als auch Objekt2 auf dasselbe Objekt verweisen, ist das ErgebnisTRUE, andernfalls ist das Ergebnis FALSE.

  • 7/30/2019 Vba-programmierung Mit Excel Grundlagen

    31/125

    Operatoren, Operanden, Ausdrcke

    Seite 31

    LIKE dient dem Vergleich einer Zeichenfolge mit einem Muster:Ergebnis = Zeichenfolge Like Muster

    Das Argument MUSTER kann unterschiedliche Zeichen, Listen mit Zeichen, Platzhalter oderZeichenbereiche enthalten: