Vollbildmodus: Seiteninhalt ohne Menus

VBA

  • VB = Visual Basic
  • VBA = Visual Basic for Applications: Spracherweiterung für (MS) Office Programme

Beispielcode

Kommentare

  • einzeilige Kommentare
     ' Das ist mein Kommentar
  • mehrzeilige Kommenare gibts nicht, man muss jede Zeile mit ' anfangen.
  • STRG-Pause unterbricht ein (endlos?) laufendes VBA-Programm

Links

Besonderheiten

  • unterscheidet nicht zwischen Groß- und Kleinschreibung, Variablen müssen nicht zwangsläufig deklariert werden, sie bekommen dann den Typ Variant d.h. je nach den Daten ändert sich der Typ (das kostet aber viel Speicherplatz!). Außerdem kann es zu unvorhersehbaren Effekten kommen, also sollte man besser mit dem Satz Option explicit (außerhalb aller Prozeduren und Funktionen) die genaue Deklaration erzwingen.
  • Kommentare leitet man mit ' (Hochkomma) ein
  • Deklarieren: Dim c As Double
  • um z.B. Strukturen zu erweitern benutzt man ReDim: z.b.
    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

Felder (Arrays)

Dim DasFeld1(30) as Integer

bzw. wenn 1 der unterste Wert sein soll:

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 Vervollständigen des Namens
Alt+F8 Funktion/Prozedur ausführen
STRG-Unterbr Tastenkombination zum Abbrechen fehlerhafter Programme
Alt-F11 ruft die integrierte Entwicklungsumgebung auf

Strings

  • Vor dem Vergleichen von Strings:
    1. Trimmen (trim)
    2. 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 verdoppeln der Anführungszeichen.

Zugriff auf Zellen (Excel)

geht einfach im ausgewählten Tabellenblatt mit

  • Cells(Reihe, Spalte)

oder über Offset Reihe=256, Zelle B1 wäre also 257:

  • Cells(257)

Ansonsten mit fester Angabe von Tabellenblatt und Zelle(n):

Worksheets("Tabelle1").Range("A1:J10").Value = Hallo

Value ist eine Eigenschaft, es könnte auch z.B. Clear sein.

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

 Function test_a_b(a As Integer, b As Integer)
 test_a_b = a + b
 End Function

Tricks

Performance verbessern

' Application.ScreenUpdating = True
CODE
' Application.ScreenUpdating = False
 
programmiersprachen/vba.txt · Zuletzt geändert: 2013/12/19 21:35 von st
 
Backlinks: [[programmiersprachen:vba]]