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/07 16:11] – 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 | ||
| + | </ | ||