• Keine Ergebnisse gefunden

Das Wichtigste in VBA

N/A
N/A
Protected

Academic year: 2021

Aktie "Das Wichtigste in VBA"

Copied!
3
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Das Wichtigste in VBA

Datentypen

Datentyp Bedeutung

Boolean Wahrheitswert (True oder False) Byte Ganze Zahl (8 Bit) ohne Vorzeichen Integer Ganze Zahl (16 Bit)

Long Ganze Zahl (32 Bit)

Single Reelle Zahl (32 Bit, einfache Genauigkeit) Double Reelle Zahl (64 Bit, doppelte Genauigkeit) Date Datum, Uhrzeit

String Zeichenkette Range Zellbereich

Variablendefinition: Dim Variable As Datentyp Beispiel: Dim anzahl As Integer

Operatoren: Arithmetisch: +, -, *, /, ^ (Potenz), \ (Ganzzahldivision), Mod (Modulo, Rest beim Teilen) Vergleich: = (Gleichheit und Zuweisung), <, >, <=, >=, <> (Ungleichheit)

Logisch: And, Or, Not, Zeichenketten: & (Verkettung)

Definition und Aufruf von Prozeduren und Funktionen

Prozedur: Definition Funktion: Definition

Sub Prozedurname (Parameterliste) ...

...

End Sub

Function Funkname (Paramterliste) As Datentyp

...

...

Funkname = ...

End Function

• Dabei ist die Parameterliste in beiden Fällen folgendermaßen aufgebaut:

par1 As Datentyp1, par2 As Datentyp2, …

• Der bei der Funktionsdefinition angegebene Datentyp ist der Datentyp des Rückgabewerts, in der mit dem roten Pfeil gekennzeichneten Zeile zugewiesen wird.

Prozedur: Aufruf Funktion: Aufruf

Prozedurname Liste oder Call Prozedurname (Liste)

Variable = Funkname (Liste) oder

… Funkname (Liste)… (in einem Ausdruck) oder

=Funkname (Liste) (in der Zelle eines Arbeitsblatts)

Liste ist die Liste mit den aktuellen Parametern, die beim Aufruf verwendet werden: p1, p2, …

• Prozeduren sind häufig mit Steuerelementen verbunden und haben dann keine Parameter.

(2)

Kontrollstrukturen 1: Auswahl (Selektion, Verzweigung, Fallunterscheidung)

Einseitige Verzweigung Zwei Fälle Drei (und mehr) Fälle

If Bedingung Then ...

...

End If

If Bedingung Then ...

...

Else ...

...

End If

If Bedingung1 Then ...

ElseIf Bedingung2 Then ...

... 'Ggf. mehr Fälle Else

...

End If

Bedingung ist immer ein logischer Ausdruck, der nur True oder False sein kann.

• Durch Übersetzung der engl. Wörter If, Then, Else ist die Ausführung ist intuitiv verständlich.

• Die rechte Spalte kann durch mehrere ElseIf auch auf mehr als drei Fälle erweitert werden.

Mehrfachauswahl mit Select Case Select Case Ausdruck

Case Werteliste1

...

Case Werteliste2

...

... 'Ggf. mehr Fälle Case Else

...

End Select

• Nimmt der Ausdruck einen Wert an, der in einer der Wertelisten vorkommt, so wird die Programm- ausführung bei dem entsprechenden Case fortgesetzt.

Kommt der Wert in keiner der Listen vor, so wird der Case Else-Fall ausgeführt, der aber auch entfallen kann.

• Die Wertelisten können so aufgebaut sein (Beispiele):

5, 10, 15 Die Werte 5, 10 und 15

Is < 5, Is > 15 Alle Werte < 5 und alle Werte > 15 5 To 15 Alle Werte zw. 5 und 15 (einschließl.)

Kontrollstrukturen 2: Schleife (Iteration, Wiederholung)

Schleife mit Kopfprüfung Schleife mit Fußprüfung Do While Bedingung

...

...

Loop

Do ...

...

Loop While Bedingung

Bedingung ist immer ein logischer Ausdruck, der nur True oder False sein kann.

• Die Schleife wird (wiederholt) durchlaufen, wenn die Bedingung True ist.

• Statt While kann auch das Schlüsselwort Until stehen. In diesem Fall wird die Schleife abgebrochen, wenn die Bedingung True ist.

• Bei der Kopfprüfung wird schon vor dem ersten Schleifendurchlauf die Bedingung getestet.

• Bei der Fußprüfung wird immer nach einem Schleifendurchlauf die Bedingung getestet.

For-Schleife For Zähler = Anfang To Ende

...

...

Next Zähler

For Zähler = Anfang To Ende Step Schritt ...

...

Next Zähler

Bei der For-Schleife wird die Variable Zähler vom Wert Anfang bis zum Wert Ende gezählt. Bei der linken Form geschieht dies mit einer Schrittweite von 1, bei der rechten Form mit der Schrittweite Schritt. Die Schrittweite wird automatisch nach jedem Schleifendurchlauf zum Zähler addiert.

(3)

Felder (Arrays)

Felder dienen zum Speichern von mehreren Werten des gleichen Datentyps in einer Variablen. Auf die einzelnen Werte (= Elemente) eines Feldes kann mit einem Index (oder bei mehrdimensionalen Feldern mehreren Indexwerten = Indizes) zugegriffen werden.

Bei normalen (statischen) Feldern muss die Größe bei der Definition angegeben werden. Bei dynamischen Feldern wird die Größe später festgelegt und kann auch geändert werden.

Beispiel Erklärung

Dim fa(1 To 10) As Integer Definition eines Feldes mit 10 Integer-Elementen bei Index 1 bis 10 Dim fb(5 To 15) As Double Definition eines Feldes mit 11 Double-Elementen bei Index 5 bis 15 Dim fc(5) As String Oberer Index = 5, als unterer Index wir automatisch 0 eingesetzt fa(7) = 123 Schreibt den Wert 123 bei Index 7 in das Feld fa

For i = 5 To 15 fb(i) = 0.1*i*i Next i

Typische Schleife, die alle Elemente des Feldes fb berechnet

LBound(fb) Untere Indexgrenze eines Feldes, hier: 5 UBound(fb) Obere Indexgrenze eines Feldes, hier: 15 Dim f2d(1 To 5, 3 To 7)

As Double

Definition eines zweidimensionalen Feldes,

1. Index im Bereich 1 bis 5, 2. Index im Bereich 3 bis 7 f2d(2, 6) = 33.77 Setzt das Element mit den Indexwerten 2 und 6 auf 33.77 LBound(f2d, 2) Untere Indexgrenze des 2. Index, hier: 3

UBound(f2d, 1) Obere Indexgrenze des 1. Index, hier: 5

Dim fd() As Integer Die Variable fd kann auf ein dynamisches Feld verweisen ReDim fd(1 To 100) Das dynamische Feld fd wird in der Größe 100 angelegt

Benutzerdefinierte Datentypen

Variablen von benutzerdefinierten Datentypen dienen, ähnlich wie Felder, zum Speichern von mehreren Werten. Anders als bei Feldern müssen die Werte aber nicht den gleichen Datentyp haben. Sie sind auch nicht über einen Index zugreifbar, sondern über einen Namen (mit vorangestelltem Punkt).

Beispiel Erklärung

Type Person

name As String gebdat As Date groesse As Single End Type

Definition des benutzerdefinierten Datentyps Person.

Dieser enthält Name, Geburtsdatum und Größe einer Person.

Solche Definitionen müssen vor allen Prozedur- und Funktionsdefinitionen stehen. Die Einzelteile eines solchen Datentyps werden als Komponenten bezeichnet.

Dim p As Person Definition einer Variablen p vom Typ Person p.name = "Dirk Nowitzki"

p.gebdat = "19.06.1978"

p.groesse = 2.13

Zuweisen von Werten an die Komponenten der Variablen p, Zugriff mit dem Punkt-Operator

Referenzen

ÄHNLICHE DOKUMENTE

EW exakt, falls Y normalverteilt sonst nicht anwendbar. Chi−Quadrat−Test

Lagere alle Attribute aus der ursprünglichen Relation aus, die nicht voll funktional abhängig vom gesamten Primärschlüssel sind.. Definiere für jede

– Obwohl STATUS von CITY abhängig ist (ein Status ist in unserem Beispiel für eine Stadt spezifisch, muß man erst einen Lieferanten speichern, bevor man den Statuscode einer

Nach VBA verzweigen und sich dann den

• Weil ein erfolgreicher Aufruf später noch in eine Sackgasse führen kann, kann bei weiteren offenen Alternativen der Keller nicht geräumt werden.. Unifikation: • Die Übersetzung

My bathroom is a mess, he ruined my makeover photos and he plays the violin – badlyB. Read Bridget's complaints

3. Ziggy steals Bridget's phone and sends text messages... 4. Bridget is pleased when her old

My bathroom is a mess, he ruined my makeover photos and he plays the violin – badly. Read Bridget's complaints