Modul 122 VBA-Scribt 1/5 1 Entwicklungsumgebung - ALT + F11 VBA-Entwicklungsumgebung öffnen 2 Prozeduren (Sub-Prozeduren) Eine Prozedur besteht aus folgenden Bestandteilen: [Private Public] Sub subname([byval ByRef][Parameter],..) anweisungen End Sub Eine Prozedur kann Parameter haben jedoch keinen Rückgabewert. 3 Funktionen (Function-Prozeduren) Eine Funktion besteht aus folgenden Bestandteilen: [Private Public] Function Funktionsname ([ByVal ByRef][Parameter],..) [As Datentyp] Funktionsname = 5+2 End Function Funktionen haben einen Rückgabewert und können Parameter haben 4 ByRef und ByVal Parameter als Wert übergeben: ByVal (by value) Parameter als Verweis übergeben: ByRef (by reference) 5 Variablen Verwenden 5.1 Deklaration Dim Variablenname1 as Datentyp [, Variablenname2 As Datentyp, ] Variable VBA Präfix Variable C Wertebereich Byte byt unsigned char 0 bis 255 Boolean b True / False Integer i short -32767 bis +32767 Long l int -2'147'483'648 bis 2'147'483'648 Single (Float) f float Fliesskommazahl mit 7 signifikanten Stellen Double d double Fliesskommazahl mit 15 signifikanten Stellen Decimal dec Fliesskommazahl mit 28 signifikanten Stellen Currency c Festkommazahl mit 4 Stellen -922'337'203'685'477.5808 bis 922'337'203'685'477.5807 Date dt 1.1.100-31.12.9999 String s char[] ca. 2 Mia. Variant v kann alle Variablentypen, insb. NULL aufnehmen Objekt obj Benutzerdefiniert typ
6 Konstanten 2/5 Const Konstantenname1 [As Datentyp] = Ausdruck [,Konstantenname2 [As Datentyp] = Ausdruck, ] 7 Arrays 7.1 Eindimensionales Array Variante 1: Dim Arrayname (IndexUntergrenze To IndexObergrenze) As Datentyp Variante 2: Dim Arrayname (IndexObergrenze) As Datentyp 7.2 Mehrdimensionales Array Dim Arrayname (Dimension1, Dimension2, ) As Datentyp 7.3 Dynamisches Array Dim Arrayname () As Datentyp 7.3.1 Grösse dynamisch ändern ReDim Arrayname (Dimension1, Dimension2, ) oder um alle bereits im Datenfeld (Array) gespeicherten Werte zu erhalten: ReDim Preserve Arrayname (Dimension1, Dimension2, ) 8 Operatoren 8.1 Arithmetische Operatoren Operator Operation Beispiel(a=20, b=3) + Addition - Subtraktion * Multiplikation / Division a / b = 6.666666667 \ Ganzzahliges Ergebnis der Division a \ b = 6 Mod Modulo a Mod b = 2 ^ Potenz a ^ b=8000 8.2 Vergleichsoperatoren Operator Operation < Kleiner als <= Kleiner oder Gleich > Grösser als >= Grösser oder Gleich = Gleich <> Ungleich 8.3 Logische Operatoren Operator Not And Or Operation Nicht: kehrt logischen Wert um Logisches Und: liefert True wenn beide Werte True sind Logisches Oder: liefert True wenn mindestens einer der beiden Werte True ist.
9 Entscheidung / Selektion 3/5 9.1 Mehrfach Alternative Else If If ljahrgang < 2000 Then MsgBox "du bist vom letzten Jahrtausend" ElseIf ljahrgang = 2004 Then Else MsgBox "dies ist ein Schaltjahr" MsgBox "Du gehoerst zur Cool-Generation" End If 9.2 Select Case Select Case soperation Case '+' : resultat = lvar1 + lvar2 Case '-' : resultat = lvar1 - lvar2 Case '/' : resultat = lvar1 / lvar2 Case '*' : resultat = lvar1 * lvar2 Case Else End Select MsgBox "ungültiger Operator" 10 Schleifen 10.1 For-Next-Schleife For izaehler = 1 to 5 Step 2 MsgBox izaehler Next izaehler 10.2 Do-While/Until Schleife Do Loop While izahl < 5 Oder mit Until (Abbruchbedingung): Do Loop Until izahl < 5
10.3 Do-Loop-While/Until-Schleife Do While izahl < 5 4/5 Loop Oder mit Until (Abbruchbedingung): Do Until izahl < 5 Loop 11 Objektorientierte Programmierung 11.1 Objekte Jedes Objekt hat - einen eindeutigen Namen - Eigenschaften/Attribute (eine oder mehrere) - Verhalten/Methoden (eines oder mehrere) 11.2 Klassen - Klassen sind Definitionen von Objekten => Objekte sind Instanzen von Klassen - Von einer Klasse können beliebig viele Objekte instanziert werden. 11.3 Objekthierarchie Jede Anwendung hat ein Objektmodell (Word, Excel, Powerpoint, Access, etc ) Zugriff auf ein Objekt mittels Objektverweis. z.b.: - Application.Documents(1).Paragraphs(1).Range Zugriff auf Eigenschaften - Application.Documents(1).Paragraphs(1).Range.Bold = True - MsgBox Application.Documents(1).Paragraphs(1).Range.Bold Zugriff auf Methoden - Application.ActiveSheet.UsedRange.Select 11.3.1 With-Anweisung Die With-Anweisung ist eine Art vereinfachte schreibweise von mehreren Objektverweisen. With Selection.Borders(xlEdgeLeft).LineStyle = xlcontinuous.colorindex = 0.TintAndShade = 0.Weight = xlmedium End With 11.4 Objektvariable Um den Zugriff auf Objekte zu vereinfachen, können Objektvariablen eingesetzt werden. Bsp.: Dim Absatz as Range Set Absatz = Application.Selection.Paragraphs(1).Range
11.5 Auflistungen 5/5 Auflistungen bestehen aus einer Gruppe gleicher Objekte. Bsp. Documents(2) Documents("Test.docx")