Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
programmiersprachen:vba [2008/05/08 13:19] – st | programmiersprachen:vba [2013/12/19 20:35] (aktuell) – st | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== VBA ====== | ||
+ | * **VB** = Visual Basic | ||
+ | * **VBA** = Visual Basic for Applications: | ||
+ | [[Beispielcode]] | ||
+ | |||
+ | |||
+ | |||
+ | ===== Kommentare ===== | ||
+ | |||
+ | * einzeilige Kommentare <code vba> ' Das ist mein Kommentar</ | ||
+ | * mehrzeilige Kommenare gibts nicht, man muss jede Zeile mit ' anfangen. | ||
+ | * STRG-Pause unterbricht ein (endlos?) laufendes VBA-Programm | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== Links ===== | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * **[[http:// | ||
+ | * [[http:// | ||
+ | |||
+ | |||
+ | ===== Besonderheiten ===== | ||
+ | * unterscheidet nicht zwischen Groß- und Kleinschreibung, | ||
+ | * Kommentare leitet man mit ' (Hochkomma) ein | ||
+ | * Deklarieren: | ||
+ | * um z.B. Strukturen zu erweitern benutzt man ReDim: z.b. <code vb>ReDim Preserve Feld(51)</ | ||
+ | * (Leerzeichen)_ bedeutet der Code in nächster Zeile weitergeht | ||
+ | * Datentypen kann man auch mit speziellen Zeichen festlegen, z.B. # für double | ||
+ | * Verknüpfen von strings mit & | ||
+ | |||
+ | ==== Objekte ==== | ||
+ | |||
+ | * [[http:// | ||
+ | |||
+ | ===== Felder (Arrays) ===== | ||
+ | <code vb>Dim DasFeld1(30) as Integer</ | ||
+ | <code vb>Dim DasFeld1(1 to 30) as Integer</ | ||
+ | |||
+ | ===== Schlüsselwörter ===== | ||
+ | function => Funktion\\ | ||
+ | Sub => Prozedur | ||
+ | |||
+ | Der Funktionsname ist gleichzeitig der Name der Variablen die den **Rückgabewert** enthält. | ||
+ | |||
+ | ===== Tastenkombinationen ===== | ||
+ | |||
+ | ^ Tastenkombination ^ Wirkung ^ | ||
+ | | STRG-LEERTASTE | ||
+ | | Alt+F8 | ||
+ | | STRG-Unterbr | ||
+ | | Alt-F11 | ||
+ | |||
+ | ===== Strings ===== | ||
+ | |||
+ | * Vor dem Vergleichen von Strings: | ||
+ | - Trimmen (trim) | ||
+ | - auf Uppercase setzen (ucase) | ||
+ | sonst bekommt man falsche Ergebnisse, da Groß und Kleinschreibung unterschiedliche sein können | ||
+ | |||
+ | Anführungszeichen in string erhält man durch [[http:// | ||
+ | |||
+ | ==== Zugriff auf Zellen (Excel) ==== | ||
+ | geht einfach im ausgewählten Tabellenblatt mit | ||
+ | * <code vb> | ||
+ | oder über Offset Reihe=256, Zelle B1 wäre also 257: | ||
+ | * <code vb> | ||
+ | |||
+ | |||
+ | Ansonsten mit fester Angabe von Tabellenblatt und Zelle(n): | ||
+ | <code vb> | ||
+ | Value ist eine Eigenschaft, | ||
+ | |||
+ | |||
+ | ===== Typumwandlungen ===== | ||
+ | |||
+ | ^ Von (Datentyp) ^ zu (Datentyp) ^ Funktion ^ | ||
+ | | string | Zahl | val(STRING) :!: funktioniert nicht bei allen Zeichenketten (abc123 wird NICHT zu 123 umgewandelt). Wenn die Umwandlung nicht möglich ist bzw. man nur Buchstaben hat, wird 0 zurück geliefert. | | ||
+ | | ? | Single | Csng | | ||
+ | | ? | String | Cstr | | ||
+ | | ? | Variant | CVar | | ||
+ | | ? | ? für Benutzer-Fehler-Codes | CVErr | | ||
+ | | Ausdrücke ? | | Format | | ||
+ | | Zahl | in Hexadezimal | Hex | | ||
+ | | Zahl | inOctal | Oct | | ||
+ | | Long | String ( Variant) | Str | | ||
+ | |||
+ | FIXME | ||
+ | |||
+ | IsNummeric | ||
+ | IsDate | ||
+ | |||
+ | FIXME | ||
+ | |||
+ | CStr, Cdbl, ... | ||
+ | |||
+ | |||
+ | |||
+ | ===== Beispiele ===== | ||
+ | <code vb> | ||
+ | | ||
+ | | ||
+ | End Function | ||
+ | </ | ||
+ | |||
+ | ===== Tricks ===== | ||
+ | |||
+ | ==== Performance verbessern ==== | ||
+ | <code vb> | ||
+ | ' Application.ScreenUpdating = True | ||
+ | CODE | ||
+ | ' Application.ScreenUpdating = False | ||
+ | </ |