Transcription of Grundlagen der VBA-Programmierung
1 VBA Grundlagen Franz Ertl 1 Grundlagen der VBA-Programmierung visual Basic for applications oder kurz VBA ist eine Programmiersprache, die von Microsoft entwickelt wurde. Verschiedene Programmstrukturen wurden aus dem fr heren Basic bernommen. Die Entwicklungsumgebung und die Art zu programmieren hat sich aber erheblich ge ndert. Ein Hauptvorteil gegen ber anderen Programmiersprachen ist die leichte Erlernbarkeit und die Integration in viele Programme. Mit VBA k nnen Sie keine ausf hrbaren Programme erstellen. Sie k nnen aber VBA-Routinen in visual Basic bertragen. Die Sprachelemente von VB sind identisch mit denen von VBA.
2 In VBA gibt es aber zus tzliche auf die jeweilige Anwendung bezogene Elemente. Zum Beispiel finden Sie in Microsoft excel das Objekt Cell , in Word das Objekt Paragraph (Absatz), das es in excel nicht gibt. Um in VB mit diesen Objekten arbeiten zu k nnen, m ssen Verweise erstellt werden. Sie erfahren mehr im Kapitel Modul einf gen . Dieses Skript ist kein allumfassendes Nachschlagewerk, sondern eine Sammlung von bungen, mit dem Ziel VBA - Learning by doing . Zum Arbeiten mit excel -Makros gibt es unter dem folgenden Link eine interessante Einf hrung: Makro: Code, der einen bestimmten Effekt verursacht und einen eigenen Namen besitzt VBA: visual Basic for applications , die Codesprache f r Makros Modul: ein Container zum Speichern von Makros, der an eine Arbeitsmappe angef gt wird Sie k nnen den VBA-Editor ber ALT+F11 ffnen bzw.
3 Ber Extras / Makro. VBA Grundlagen Franz Ertl 2 Modul erstellen Einf hrung in die VBA-Programmierung Folgende Fragen werden in diesem Kapitel beantwortet: Wie funktioniert die ereignisorientierte Programmierung? Was sind Objekte, Klassen, Eigenschaften und Methoden? Welche Module gibt es? Was sind Formen bzw. Formulare? Wie werden Steuerelemente eingesetzt? Was ist der Unterschied zwischen Sub - Prozeduren und Function Prozeduren? Ereignisgesteuerte Programmierung VBA ist eine ereignisgesteuerte Programmiersprache. Das bedeutet, dass beim Eintritt bestimmter Ereignisse Programmcode ausgef hrt werden kann.
4 Wenn Sie ein Benutzerformular erstellt haben, gibt es dort eine Reihe von Ereignissen, bei welchen Programmcode ausgel st werden kann. Das Ereignis Click bedeutet, dass der Programmcode aufgerufen wird, wenn auf das jeweilige Objekt (Schaltfl che, Nachschlagefeld ) geklickt wird. Ereignis Wird ausgel st beim Click Anklicken einer Schaltfl che DblClick Doppelklicken einer Schaltfl che Enter Hingehen zu einer Schaltl che Exit Verlassen einer Schaltfl che KeyDown Dr cken einer Taste ber der Schaltfl che KeyPress Gedr ckthalten der Taste ber der Schaltfl che KeyUp Loslassen der Taste ber der Schaltfl che MouseDown Dr cken der Maustaste ber der Schaltfl che MouseMove Bewegen der Maus ber die Schaltfl che MouseUp L sen der Maustaste ber der Schaltfl che VBA Grundlagen Franz Ertl 3 Ereignisse auf Workbookebene Es gibt auch eine Reihe von
5 Anwendungsspezifischen Ereignissen Activate AddinInstall AddinUninstall BeforeClose BeforePrint BeforeSave Deactivate NewSheet Open PivotTableCloseConnection PivotTableOpenConnection SheetActivate SheetBeforeDoubleClick SheetBeforeRightClick SheetCalculate SheetChange SheetDeactivate SheetFollowHyperlink SheetPivotTableUpdate SheetSelectionChange WindowActivate WindowDeactivate WindowResize Open Der Benutzer ffnet eine Arbeitsmappe. Dabei kann in excel das Ereignis Open ausgel st Private Sub Workbook_Open() = xlMaximized End Sub Eigenschaften Im Inhaltsverzeichnis des VB-Editors (ALT+F11 / visual Basic Hilfe finden Sie eine Auflistung der Ereignisse, Methoden, Eigenschaften (Properties) Objekte besitzen bestimmte Eigenschaften.)
6 Hier ein paar Eigenschaften eines Cells-Objektes (Zelle): Worksheets("Sheet1").Cells(5, 3). = 14 Mehrere Eigenschaften gleichzeitig einstellen: With Worksheets("Sheet1")..Name = "Arial" .Size = 8 End With Methoden Auf Objekte k nnen Methoden angewendet werden. Methoden beantworten die Frage: "Was kann ich mit dem Diagramm machen?" Zu diesen Methoden z hlt ADD. Before:=Worksheets( ) VBA Grundlagen Franz Ertl 4 Module Module beinhalten den Programmcode. Sie k nnen in einem Modul viele verschiedene Prozeduren speichern. Es gibt 2 Arten von Modulen. Standardmodule und Klassenmodule.
7 Standardmodule In Standardmodulen (Einf gen / Modul) wird der Programmcode abgelegt, welcher von verschiedenen Formularen aus aufgerufen werden soll. Das Standardmodul ist ffentlich und dadurch innerhalb des Projekts von berall her ansprechbar. Klassenmodule Hier werden neue Objekte definiert, die Methoden und Eigenschaften besitzen. Dadurch kann die Funktionalit t von AutoCAD um neue Zeichnungsobjekte erweitert werden. Die Definition wird mit dem Schl sselwort New erreicht. DIM objTest as New clsMeinObjekt In Klassenmodulen k nnen ActiveX-Steuerelemente definiert und API-Funktionen ( advanced Programmers Interface bzw.)
8 Programmierung der Windows-Umgebung) aufgerufen werden. Schauen Sie mal auf der Seite nach. Dort finden Sie eine tolle Sammlung von API-Funktionen. Userform Es gibt eine Reihe verschiedener Bezeichnungen f r Userforms, Userform, Form, Formular oder das Userformular. Hier wird die Bezeichnung Formular verwendet. Es handelt sich um ein Dialogfenster, das dem Anwender zur Verf gung gestellt wird. Sie k nnen dort Steuerelemente, wie Befehls-Schaltfl chen oder Kombinationsfelder plazieren. Forms bzw. Formulare werden im Projekt gespeichert. Sie k nnen die Formulare auch exportieren und in andere Projekte wieder importieren.
9 VBA Grundlagen Franz Ertl 5 Steuerelemente Zum Ausf hren von Befehlen oder zu Anzeige von Werten k nnen Sie auf der Formularfl che Steuerelemente anordnen, die Sie programmieren k nnen. Auswahl eines Objekts. Label: berschriften, Textinhalte. Ein Textfeld beinhaltet berechnetee Ausdrucke wie =2*2 oder berechnete Werte. Kombinationsfeld: Nachschlagefeld, f r Objekte einer Auflistung. Ein Objekt wird angezeigt. Listenfeld: Ein Listenfeld kann Objekte einer Auflistung beinhalten. Alle Objekte werden angezeigt. Checkbox: Das Feld kann die Zust nde Ja/Nein annehmen = True/False = -1/0 Optionsfeld: Das Optionsfeld kann mit mehreren anderen Feldern in einem Rahmen kombiniert werden.
10 Es kann in einer Kombination immer nur ein Feld den Wert True annehmen. Umschalter: Der Schalter wird als aktiviert oder nicht aktiviert dargestellt. Rahmen: Der Rahmen wird h ufig f r Optionsfelder verwendet. F gen Sie einen Rahmen ein. Platzieren Sie innerhalb des Rahmens mehrere Optionsfelder. Dadurch werden die Optionsfelder zu einer Gruppe zusammengefasst, so dass nur eine Option aktiviert werden kann. Befehlsschaltfl che: Zum Ausf hren von Programmcode. Register: Erzeugt Registerseiten positionieren. Formular mit mehreren Seiten. Bildlaufleiste: Rollbalken dienen zum Scrollen von Bildschirmseiten.