|
Visual Basic bietet eine Reihe von verschiedenen Befehlen und zahlreichen Funktionen, die wir nachfolgend (ohne Anspruch auf Vollständigkeit) dokumentieren. Unter anderem finden Sie hier Datumsfunktionen, Rechenfunktionen, Zeichenkettenfunktionen, Abfragefunktionen, Umwandlungsfunktionen sowie Beispiele zur Programmierung einer MessageBox sowie von Programmschleifen.
Der zweite Teil dieser Dokumentation besteht aus Merksätzen zu Visual Basic, unter anderem zu Grundlagen-Themen wie Variablen, Objekten, Klassen, Methoden, Ereignissen, das Arbeiten mit der IDE, zu Projekten, dem Compiler, zu Formularen, Deklarationen und Format-Funktionen, sowie Prozeduren, Berechnungen, Steuerelementen und dem Steuerelementefeld sowie dem Errorhandling.
Deutsch | English | Hinweise | Syntax Beispiele |
---|---|---|---|
ZuVariantDatumZeit | CDate | Wandelt einen gültigen Datumsstring in den Datumstyp Date um | Print CDate("23.06.19") ' ergibt 23.06.2019 |
DatumZeit | Date, vbDate | Liefert das aktuelle Systemdatum in Form eines Datumstyps (nur zwischen dem 1.1.1980 und 31.12.2099) | Print Date() ' Beispiel: 16.08.2022 |
Datumsberechnung | DateAdd | Berechnet ein Datum ausgehend von einem anderen Datum und einer Zeitdifferenz | |
Datumsdifferenz | DateDiff | Berechnet die Zeitdifferenz zwischen Daten in Tagen (z. B. Differenz zwischen jetzt und dem 1.1.2000) | AnzahlTage = DateDiff("d", Now, "1.1.0") Text1.Text = AnzahlTage |
Datumsteil | DatePart | Berechnet aus einem Datumstyp einen bestimmten Teil, z. B. die Nummer der Woche oder des Quartals | |
Datumszahl | DateSerial | Wandelt ein Datum in einen Datumstyp um (in Form von drei Werten: Jahr, Monat, Tag). (DateSerial(2021, n, 1), "mmmm") ergibt Januar / Februar. (DateSerial(2022, 2, 12)) ergibt den 12.2.2022 | For j = 1995 To 2022 List1.AddItem Format(DateSerial(j, 1, 1)) Next j |
Datumswert | DateValue | Wandelt ein Datum in einen Datumstyp um (Zeichenkette, die ein gültiges Datum darstellt) | DateValue(Date As Variant) As Variant |
Tag | Day | Extrahiert aus einem Datum die Tageszahl | Print Day(Now) ' liefert den aktuellen Tag als Zahl |
Stunde | Hour | Extrahiert aus einem Datum die Stundenzahl | Print Hour(Now) ' liefert die aktuelle Stunde |
Minute | Minute | Extrahiert aus einem Datum die Minutenzahl | Print Minute(#11:45#) ' liefert 45 |
Monat | Month | Extrahiert aus einem Datum die Monatszahl | Print Month(Now) ' liefert den aktuellen Monat |
Monatsname | MonthName | Stringfunktion für die Datumausgabe | Print MonthName(11, True) ' liefert Nov |
Jetzt | Now | Liefert aktuelles Systemdatum und -zeit | Print Now() 'Beispiel: 15.06.2019 11:15:18 |
Sekunde | Second | Extrahiert aus einem Datum die Sekundenzahl | Print Second(Now) ' liefert die aktuelle Sekunde |
Zeit | Time | Liefert die aktuelle Systemzeit; oder stellt die Systemzeit ein | Print Time() ' Beispiel: 11:35:46 |
Zeitgeber | Timer | Liefert die Anzahl der seit Mitternacht vergangenen Sekunden | Timer As Single Print Timer ' Beispiel: 43843,23 |
Zeitzahl | TimeSerial | Erzeugt Zeit aus Einzelangaben | Print TimeSerial(12,45,0) ' ergibt 12:45:00 |
Wochentag | WeekDay | Extrahiert aus einem Datumstyp eine Zahl für den Wochentag (1 = Sonntag ... 7 = Samstag) | Print Weekday("11.08.2019") |
Wochentagname | WeekdayName | Stringfunktion für die Datumausgabe | Print WeekdayName(1) ' liefert "Montag" |
Jahr | Year | Extrahiert aus einem Datumstyp die Jahreszahl | alter = Year(Date) - Year(GebDatum) |
Deutsch | English | Hinweise | Syntax Beispiele |
---|---|---|---|
Abs | Abs | Berechnet den Absolutwert einer Zahl x, also den Zahlenwert ohne Vorzeichen | |
Und | And | Logischer Operator (Verknüpfte Entscheidungen sollte man jedoch auf mehrere Befehle verteilen...) | If Sensor1 = True And Sensor2 = True Then Alarm If Sensor1 = True Then If Sensor2 = True Then Befehle123 End If End If |
ArcTan | Atn | Berechnet den Arcustangens eines Längenverhältnisses | |
Cos | Cos | Berechnet den Cosinus eines Winkels x (Bogenmaß) | |
Exp | Exp | Berechnet den Exponent zur Basis e. Das Ergebnis kann max. 709782712893 betragen (sonst Überlauf) | |
Schneide | Fix | Berechnet den ganzzahligen Anteil einer Zahl, rundet ab | |
RundeAb | Int | Berechnet den ganzzahligen Anteil einer Zahl, rundet ab | Select Case Int(Sqr (Rnd*Zahl)) + 1 |
Ln | Log | Berechnet den natürlichen Logarithmus einer Zahl, bezogen auf die Basis e | |
Oder | Or | Logischer Operator | If Sensor1 = True Or Sensor2 = True Then NoAlarm |
ZufallInit | Randomize | Steht eine Zeile vor der Rnd-Formel und sorgt dafür, das ständig neue Zufallszahlen ausgegeben werden | Randomize x = (6 * Rnd - 1) |
Zufallszahl | Rnd | Berechnet eine Zufallszahl zwischen 0 und 0.99999 | MaxZahl = Int((1024 - 256 + 1) * Rnd + 256) |
Runden | Round | Fließkommazahl wird auf die gewünschte Anzahl an Stellen gerundet | |
VZchn | Sgn | Berechnet den Typ des Vorzeichens: Das Ergebnis ist -1 bei negativen, 1 bei positiven Zahlen, und 0, wenn das Argument 0 ist | |
Sin | Sin | Berechnet den Sinus eines Winkels x (Bogenmaß) | Bogenmass = Gradmass / 360 * 2 * Pi |
Wurzel | Sqr | Berechnet die Quadratwurzel; negative Werte sind nicht erlaubt | If Zahl > 0 Then Wurzel = Sqr (Zahl) |
Tan | Tan | Berechnet den Tangens eines Winkels x |
Deutsch | English | Hinweise | Syntax Beispiele |
---|---|---|---|
Zn | Chr | Wandelt Zeichencode (0-255) in einen 1-Zeichen-String um | Chr$(68) ergibt "D" |
Filter | Filter | Durchsucht ein Feld von Strings nach einem TeilString und gibt ein Feld mit Strings zurück, in denen der TeilString vorkommt bzw. nicht vorkommt | TestFeld2 = Filter(Testfeld1, "tag") |
InZnF | InStr | Gibt die Position eines TeilStrings in einem größeren String zurück, wobei zusätzlich die Startposition und die Art des Vergleichs (0 Binäre Suche, 1 Groß- / Kleinschreibung) festgelegt werden kann | If Instr(Name, "Hans Egon") Then Vorname = Gefunden 'sucht den Buchstaben a in einem String: Print Instr("Hallo", "a") ergibt 2 |
--- | InstrRev | Das Gegenstück zur Instr-Funktion. Durchsucht einen String nach einem TeilString, wobei die Suche am Ende der Zeichenkette beginnt. Ergebnis ist die Position des Teil-Strings | Pos = InstrRev(Gesamtstring, vbNullChar) 'sucht den letzten Backslash im String: Print InStrRev("C:\WINNT\system32\drivers\isdn", "\") 'ergibt 26 |
--- | Join | Setzt einen String aus TeilStrings zusammen, die in Form eines Feldes übergeben werden. Als zweites Argument kann ein Trennzeichen übergeben werden, das die einzelnen TeilStrings im zusammengesetzten String trennt | GesamtName = Join(NamenFeld), ":") |
Links | Left | Trennt n Zeichen von links beginnend ab und gibt sie als String zurück | Left$("Hallo", 2) ' ergibt "Ha" |
Länge | Len, (Length) | Ermittelt die Länge eines Strings | Print Len("Hallo") ' ergibt 5 |
KürzeL | LTrim | Schneidet von einem String alle führenden Leerzeichen ab | LTrim$(String) |
TeilZnF | Mid | Trennt ab der Position n Anzahl Zeichen aus dem String heraus und gibt sie als String zurück | Mid$(String, n, Anzahl) = Mid$("Hallo", 2, 1) ergibt "a" |
Ersetze | Replace | Ersetzt einzelne TeilStrings, die in Form eines Feldes übergeben werden | TestString = "The blue moon and the blue gras" Ergebnis = Replace(TestString, "blue", "yellow", Count:=2) |
Rechts | Right | Trennt n Zeichen von rechts beginnend ab und gibt sie als String zurück | Right$(String, n) |
KürzeR | RTrim | Schneidet von einem String alle angehängten Leerzeichen ab | RTrim$(String) |
Teile | Split | Teilt einen String anhand eines Trennzeichens in TeilStrings auf und gibt diese in einem Feld zurück | Feld2 = Split("rot",gelb,grün", ",") |
ZnF | Str | Wandelt den Ausdruck in einen String um. Besser ist im allgemeinen die Format-Funktion, da man hier festlegen kann, wie der String gebildet wird | Str$(Ausdruck) = Print Str$(25) ergibt " 25" (mit führendem Leerzeichen!) |
VergleicheZnF | StrComp | Vergleicht zwei Strings miteinander und gibt einen True/False-Wert zurück | StrComp(String1, String2[, Vergleich]) |
KonvertiereZnF | StrConv | Konvertiert Strings von Ansi- in Unicode oder von Klein- in Großbuchstaben | StrConv(String, Umwandlungs-Typ) |
Zeichenfolge | String | Erstellt einen String, der aus Anzahl Zeichen mit dem Ansi-Code Zeichen besteht | String(Anzahl, Zeichen) |
Umkehren | StrReverse | Kehrt die Reihenfolge der Zeichen in einem String um und gibt das Ergebnis als String zurück | Ergebnis = StrReverse("OttoX") |
Kürze | Trim | Schneidet von einem String sowohl alle führenden als auch alle angehängten Leerzeichen ab | Trim$(String) |
Deutsch | English | Hinweise | Syntax Beispiele |
---|---|---|---|
IstDatenfeld | IsArray | Stellt fest, ob ein Ausdruck den Unterdatentyp Array (Feld) besitzt | |
IstDatumZeit | IsDate | Stellt fest, ob ein Ausdruck den Unterdatentyp Date (Datum) besitzt | |
IstLeer | IsEmpty | Stellt fest, ob eine Variable initialisiert wurde oder den Zustand Empty besitzt: Sub ProzedurNeu (Optional tmpZahl As Variant) If IsEmpty(tmpZahl) = True Then tmpZahl = 0 End Sub | Do b = ZeichenLesen() If IsEmpty(b) = True Then Exit Do Zeichenkette = Zeichenkette + b Loop |
IstFehler | IsError | Stellt fest, ob ein Ausdruck den Typ Error besitzt | |
IstFehlend | IsMissing | Stellt fest, ob einem optionalen Prozedurargument vom Typ Variant ein Wert übergeben wurde | |
IstNull | IsNull | Stellt fest, ob ein Ausdruck den Wert Null (nicht 0) besitzt; z. B. bei Datenbankfeldern ohne Inhalt | |
IstZahl | IsNumeric | Stellt fest, ob ein Ausdruck numerisch ist | If IsNumeric(txtZielbetrag) = False Then... |
IstObjekt | IsObject | Stellt fest, ob es sich bei einem Ausdruck um eine Referenz auf ein Objekt handelt | |
IstVariant | IsVariant | Stellt fest, ob ein Ausdruck den Typ Variant besitzt | |
TypName | TypeName | Gibt den Daten- bzw. Objekttyp eines Ausdrucks als Zeichenkette zurück | |
VarTyp | VarType | Gibt den Datentyp eines Ausdrucks als Zahl zurück |
Deutsch | English | Hinweise | Syntax Beispiele |
---|---|---|---|
Code | Asc | Ermittelt den Ansi-Code eines Stringzeichens. Besteht der String aus mehreren Zeichen, wird nur das erste verwendet | Print Asc("D") 'ergibt 68 |
ZuBoolesch | CBool | Wandelt einen numerischen Ausdruck in eine Zahl vom Typ Boolean um. Ein boolscher Wert kann nur 0 (False) oder 1 (True) annehmen | txtZahlung.Enabled = CBool(chkZahlung.Value) |
Byte | CByte | Wandelt einen numerischen Ausdruck in eine Zahl vom Typ Byte um | |
ZuWährung | CCur | Wandelt einen numerischen Ausdruck in eine Zahl vom Typ Currency um; Nachkommastellen werden auf 4 gekürzt | Betrag = CCur(txtEingabe.Text) |
ZuDatumZeit | CDate | Wandelt einen numerischen Ausdruck in eine Zahl vom Typ Date um | |
ZuDoppelt | CDbl | Wandelt einen numerischen Ausdruck in eine Zahl vom Typ Double um | Sheets(1).Cells(1, 2) = CDbl(Betrag) |
Dezimal | CDec | Wandelt einen numerischen Ausdruck in eine Zahl vom Typ Decimal um | |
Error | CErr | Wandelt einen numerischen Ausdruck in eine Zahl vom Typ Error um | |
ZuGanz | CInt | Wandelt einen numerischen Ausdruck in eine Zahl vom Typ Integer um. Fließkommawert wird gerundet | Laufzeit = CInt(txtLaufzeit.Text) |
ZuLang | CLng | Wandelt einen numerischen Ausdruck in eine Zahl vom Typ Long um. Fließkommawert wird gerundet | AnzahlMeter = CLng(txtMeter.Text) |
ZuEinfach | CSng | Wandelt einen numerischen Ausdruck in eine Zahl vom Typ Single um | Wert = Wert + CCur(txtMoney.Text) * CSng(txtMonat.Text) |
ZuZnF | CStr | Wandelt einen numerischen Ausdruck in eine Zahl vom Typ String um | |
ZuVariant | CVar | Wandelt einen numerischen Ausdruck in eine Zahl vom Typ Variant um | |
Format | Format | Zahlen (Währung, Datum...) lassen sich mit verschiedenen Parametern in eine bestimmte optische Form bringen | |
Währung | FormatCurrency | Ersetzt die allgemeine Formatmethode in bestimmten Situationen | lblErgebnis.Caption = Format$(Ergebnis, "Currency") |
Datum / Zeit | FormatDateTime | Ersetzt die allgemeine Formatmethode in bestimmten Situationen | |
Nummer | FormatNumber | Ersetzt die allgemeine Formatmethode in bestimmten Situationen | |
Prozent | FormatPercent | Ersetzt die allgemeine Formatmethode in bestimmten Situationen | txtKonto.Text = Format$(7.5, "Percent") & "Prozent" |
Hex | Hex | Wandelt einen numerischen, ganzzahligen Ausdruck in die entsprechende Hexadezimalzahl um. Umgekehrt geht es nur über das Direktfenster ("Debug.Print &H3E8" liefert den Wert 1000) | Dim Hex1 Hex1 = Hex(5) liefert 5 Hex1 = Hex(10) liefert A Hex1 = Hex(459) liefert 1CB |
Klein | LCase | Wandelt einen String in Kleinbuchstaben um | Print LCase$("Hallo") ' ergibt "hallo" |
Okt | Oct | Wandelt einen numerischen, ganzzahligen Ausdruck in die entsprechende Oktalzahl (zur Basis 8) um | |
LZn | Space | Liefert n Leerzeichen | s = Space (5) & text ' ergibt: " Hallo" |
Gross | UCase | Wandelt einen String in Großbuchstaben um | Print UCase$("Hallo") ' ergibt "HALLO" |
Wert | Val | Berechnet den numerischen Wert eines Strings. Man sollte jedoch anstelle von Val die Cx-Funktionen verwenden | Eintrag = Val(InputBox("Geben Sie die Nummer ein")) Print Val("25") ' ergibt 25 |
Deutsch | English | Hinweise | Syntax Beispiele |
---|---|---|---|
Verz | Dir | Gibt den Namen einer Datei im aktuellen Verzeichnis zurück, deren Name mit dem Muster (z. B. *.txt) übereinstimmt | |
Abgrenzen | Environ | Gibt den Wert einer im Betriebssystem angelegten Umgebungsvariablen zurück | |
DAttr | FileAttr | Gibt den Zugriffsmodus einer in VBA geöffneten Datei als Zahl zurück | |
DDatumZeit | FileDateTime | Gibt das Datum der letzten Änderung einer Datei als Datumstyp zurück | |
DLänge | FileLen | Gibt die Länge einer Datei in Bytes zurück, deren Dateiname übergeben wurde | |
DNrNeu | FreeFile | Gibt die nächste freie Dateibezugsnummer (file handle) zurück, die für einen Open-Befehl verwendet werden kann | |
Pos | LOC | Gibt die aktuelle Position des Dateizeigers, der die Schreib- /Leseposition beim nächsten Zugriff festlegt, für eine geöffnete Datei zurück | |
DGrösse | LOF | Gibt die Länge einer bereits geöffneten Datei in Bytes zurück | |
Teilbereich | Partition | Gibt die Nummer eines Bereichs als String zurück, in dem sich ein übergebener Wert befindet, wobei der Bereich in feste Intervalle (z. B. 1000er-Schritte) unterteilt wird |
Deutsch | English | Hinweise | Syntax Beispiele |
---|---|---|---|
MeldungsDialog | MsgBox | Ausgabe einer Meldung über eine MessageBox | Befehle dazu siehe: vbYesNo, vbYesNoCancel... |
Titel | Title | Titelleisten-Beschriftung der MsgBox; wird kein Button ausgegeben, müssen zwei Kommas in die Befehlszeile | MsgBox "Das ist nur ein Test", , "NoTextToday, please!" |
Abbruch | vbAbort | Konstante für MsgBox | Case 3 |
Abbruch Wiederholen Ignorieren | vbAbortRetryIgnore | Drei Schaltflächen in MsgBox mit Umbruch im Text | MsgBox "Möchten Sie abbrechen " & vbCrLf & "oder weitermachen?", 2, "Titel" |
Abbrechen | vbCancel | Konstante für MsgBox | Case 2 |
Kritisch | vbCritical | Hinweis-Icon in MsgBox | MsgBox "Abbruch!", 16 + 0, "Titel" |
Warnung | vbExclamation | Hinweis-Icon in MsgBox | MsgBox "Achtung!", 48 + 0, "Titel" |
Ignorieren | vbIgnore | Konstante für MsgBox | Case 5 |
Information | vbInformation | Hinweis-Icon in MsgBox | MsgBox "Information", 64 + 0, "Titel" |
Nein | vbNo | Konstante für MsgBox | Case 7 |
OK | vbOK | Konstante für MsgBox | Case 1 |
OK Abbrechen | vbOKCancel | 2 Schaltflächen in MsgBox | MsgBox "Text", 1, "Titel" |
Nur OK | vbOKOnly | 1 Schaltfläche in MsgBox | MsgBox "OK", 0, "Titel" |
Frage | vbQuestion | Hinweis-Icon in MsgBox | MsgBox "Frage", 32 + 0, "Titel" |
Wiederholen | vbRetry | Konstante für MsgBox | Case 4 |
Wiederholen Abbrechen | vbRetryCancel | 2 Schaltflächen in MsgBox | MsgBox "Wiederholen", 5, "Titel" |
Ja | vbYes | Konstante für MsgBox | Case 6 |
Ja Nein | vbYesNo | 2 Schaltflächen in MsgBox | MsgBox "Ja - Nein", 4, "Titel" |
Ja Nein Abbrechen | vbYesNoCancel | 3 Schaltflächen in MsgBox | MsgBox "Das ist nur ein Test", 3, "Titel" |
Deutsch | English | Hinweise | Syntax Beispiele |
---|---|---|---|
Wenn | If (...Then Else End If) | Leitet eine Entscheidung ein. Der If-Then-Befehl führt die auf Then folgenden Befehle nur dann aus, wenn der auf If folgende Ausdruck Wahr (ungleich Null) ist | If 77 Then Ausführen |
Dann | Then | Teil einer If Then-Entscheidung | If Temperatur > 20 Then Einschalten If Treffer > 19 Then Fehler = True |
Sonst | Else | Leitet den Zweig einer If Then-Entscheidung ein. Kann auch Bestandteil einer Select Case-Entscheidung sein | If Spielstand > 10 Then MsgBox "Gewonnen!" Else MsgBox "Möchten Sie weiterspielen?" End If |
EndeWenn | End If | Beendet den mehrzeiligen Zweig einer If Then-Entscheidung | If Gewinn > 1000 Then Wiederholen = False WinnerName = PlayerName End If |
SonstWenn | ElseIf | Zweig einer If Then-Entscheidung (gegenüber dem Else-Befehl Verkürzung möglich) | If Spielstand > 10 Then MsgBox "Winner!" ElseIf MsgBox "Weiterspielen?" End If |
Prüfe | Select (...Case...) | Leitet eine Mehrfach-Entscheidung ein | Select Case Produktname Case Fall1: Befehl_1: Befehl_2: Befehl_3 Case Fall2: Befehl Case Else: Fehler = True End Select |
Fall | Case | Select Case Zeichen Case "0" To "9": zString = zString & Zeichen Case Else: Befehl End Select | |
Fall | Case Is | Prüft einen Zweig einer Select Case-Mehrfach Entscheidung | Select Case Zahl Case Is > 100: MsgBox "Zahl größer 100" Case Is < 50: MsgBox "Zahl kleiner 50" |
EndePrüfe | End Select | Beendet eine Select Case-Mehrfach-Entscheidung | End Select |
Für | For (...Next) | Leitet eine For Next-Schleife ein, die eine bestimmte Anzahl an Durchläufen macht; die Anzahl der Durchläufe steht also von Beginn an fest. Schleifen benötigen einen Startwert, einen Endwert, sowie ggf. eine Schrittweite | Dim n As Integer (oder Long: keine Nachkommastellen) For n = 1 To 100 (Nachkomma mit Integer unmöglich) Debug.Print n Next |
Schrittweite | Step | Legt die Schrittweite bei einer For Next-Schleife fest. Besitzt die Schrittweite einen Nachkommaanteil, benötigt man den genauen Deklarations-Typ | Dim beta As Currency (Double oder Decimal) For beta = 1 To 300 Step 0.3 Befehle Next |
Nächste | Next | Teil einer For Next-Schleife: Beendet die durch den For-Befehl eingeleitete Programmschleife | Dim Heute As Single (zeigt Nachkommastellen an) For Heute = 10 To -10 Step -0.1 Befehle Next |
Durchlaufe | Do (...Loop) | Leitet eine Do Loop-Schleife ein, die so lange läuft, bis eine Abbruchbedingung erfüllt ist; die Anzahl der Durchläufe ist unbekannt. Fehlt diese Abbruchbedingung, ist die Schleife endlos und wird unendlich oft durchlaufen | Do (ProzedurName) StartKapital = StartKapital * (1 + Zins / 100) Loop Until Kapital > EndKapital |
Ereignisse | DoEvents | Während der Durchläufe soll die Endlosschleife auf andere Ereignisse reagieren können | Do While DoEvents Befehle Loop |
BisWahr | Until | Legt die Abbruchbedingung einer Do Loop-Schleife fest. Mehr zur Funktion "EOF" siehe dort | Do Until EOF(DateiNr) Line Input DateiNr, Eingabezeile AnzahlZeilen = AnzahlZeilen + 1 txtAusgabe.Text = txtAusgabe.Text & Eingabezeile Loop |
Solange | While | Legt die Abbruchbedingung einer Do Loop-Schleife fest. Anstatt While kann auch Until verwendet werden, dann jedoch ohne den Not-Operator | Do Line Input DateiNr, Eingabezeile AnzahlZeilen = AnzahlZeilen + 1 txtAusgabe.Text = txtAusgabe.Text & Eingabezeile Loop While Not EOF(DateiNr) |
Schleife | Loop | Teil einer Do Loop-Schleife. Beendet die durch den Do-Befehl eingeleitete Programmschleife | Do While n < 10 n = n + 1 Debug.Print n Loop |
Für | For (...Each) | Leitet eine For Each-Schleife ein. Wird für das Durchgehen einer (Objekt-)Auflistung verwendet | |
Alle | Each | Teil einer For Each-Schleife | |
GeheZu | GoTo | Führt einen Sprung innerhalb einer Prozedur oder Funktion durch. (Ist der Wert der Variablen "Wert" größer als Null, werden die dazwischen befindlichen Befehle übersprungen. Die Sprungmarke muss sich jedoch innerhalb der Prozedur "Form_Load" befinden.) | Sub Form_Load () If Wert > 0 Then GoTo Sprungmarke Befehle_123 Sprungmarke: Befehle_789 End Sub |
Verlasse | Exit | Verlässt eine Programmschleife, Prozedur oder Funktion. Wird im allgemeinen in einer If-Abfrage ausgeführt | Exit Do, Exit For, Exit Function, Exit Property, Exit Sub |
Stichwort | Hinweise | Syntax Beispiele |
---|---|---|
Grundlagen | Die Schritte, die zur Umsetzung eines Programms führen, werden als Algorithmus bezeichnet | Algorithmus |
Alle Daten, die ein Computer verarbeitet, werden in binärer Form (eine Folge von Nullen und Einsen) gespeichert, die als Bits bezeichnet werden | Bits | |
Das fundamentale Konzept der Programmiersprachen sind: | Variablen, Entscheidungen und Programmschleifen | |
Variablen | sind die wichtigsten Programm-Elemente einer Programmiersprache | |
Eine Variable ist dazu da, um beliebige Werte in einem Programm zu speichern, so dass sie zu einem späteren Zeitpunkt der Programmausführung wieder benutzt werden können | ||
Gültige Variablen-Namen sind z. B. | GeldBetrag1, Vor2Name, Ort3 | |
müssen mit einem Buchstaben beginnen | AnzahlSpieler1 | |
dürfen keine Leerzeichen oder folgende Sonderzeichen beinhalten | . , : ! $ % & # | |
dürfen nicht länger als 255 Zeichen sein | ||
dürfen keine Schlüsselwörter (z. B. Befehlsnamen) sein | ||
dürfen in ihrem Gültigkeitsbereich (innerhalb der Prozedur oder eines Moduls) nur einmal vorkommen | ||
Die Groß- und Kleinschreibung spielt sowohl bei Bezeichnern als auch bei Befehlen keine Rolle | gEldbeTrAg1, vor2Name, ort3 | |
müssen mit dem Befehl Dim deklariert werden. Erst danach kann man ihnen einen Wert zuweisen | Dim MehrwertSteuer, Vor8Name, Ort5 | |
Alternativ kann man folgende Deklarationen verwenden: | Private, Public | |
Konstanten | Neben (veränderlichen) Variablen gibt es Konstanten, deren Wert sich während der Programm-Ausführung nicht ändern können. Befehl: Const | Const MehrWert1 = 1,075 Const Pfadt = "D:\Graphics\Icons\Elements\" |
Entscheidungen | sind (Aktions)Befehle, die einen oder mehrere Befehle nur dann ausführen, wenn ein bestimmter Ausdruck, z. B. eine Variable, einen bestimmten Wert besitzt. Im Beispiel rechts prüft der If-Befehl einen Ausdruck: | If GeldBetrag > MaximalBetrag Then MsgBox "Nicht auszahlen" Else GeldbetragAuszahlen End If |
Programmschleifen | Eine beliebige Gruppe von Befehlen wird eine bestimmte Anzahl oft wiederholt. Man unterscheidet: | For Next- und Do Loop-Schleifen |
For Next-Schleife: Hier wird die Anzahl der Durchläufe bereits am Anfang festgelegt | For Zähler = 10 To 0 Step 1 MsgBox "Countdown: " & Zähler Next | |
Do Loop-Schleife: Hier steht die Anzahl der Durchläufe nicht bereits fest, wenn die Schleife gestartet wird. Statt dessen wird die Schleifen-Abbruchbedingung entweder nach dem Do-Befehl oder nach dem Loop-Befehl getestet | Zähler = 10 Do MsgBox "Countdown: " & Zähler Zähler = Zähler -1 Loop Until Zähler < 0 | |
Die Do-Loop-Schleife sollte man immer der For-Next-Schleife vorziehen (eine FN-Schleife kann man immer in eine Do-Loop-Schleife umwandeln; umgekehrt geht es nicht!) | ||
Befehle | gibt es in drei Kategorien: | Deklarationen, Aktionen, Kommentare |
Deklarationen legen den Namen einer Variablen fest | Dim SteuerSatz3 | |
Aktionen rufen z. B. Prozeduren auf | Call MeineProzedur1 | |
Kommentare sind Anmerkungen des Programmierers, haben auf die Programm-Ausführung keine Auswirkung, und beginnen mit einem Apostroph | ' Dies ist ein Kommentar | |
Eingaben und Ausgaben | Berechnungen müssen nach außen hin sichtbar gemacht werden. Man unterscheidet: | Eingabe- und Ausgabemöglichkeiten |
Eingaben sollen vom Benutzer eingegeben werden. Dies erreicht man über die Steuerelemente eines Formulars, oder über die InputBox-Funktion | Eingabe = Inputbox("Gib die PLZ ein") | |
Ausgaben zeigen dem Benutzer das Ergebnis nur an. Dies erreicht man über die Steuerelemente eines Formulars, oder über die MsgBox-Funktion | MsgBox "Die PLZ lautet " & PLZ |
Stichwort | Hinweise | Syntax Beispiele |
---|---|---|
Objekte | sind Programm-Elemente, die bereits fertig vorliegen, und die man von einem VBA-Programm aus ansprechen kann, z. B. Steuerelemente in einem Formular, globale Objekte (App, Clipboard, Debug, Screen), oder ActiveX-Steuerelemente | |
besitzen stets fünf Merkmale: einen Namen, eine Klasse, von der das Objekt abstammt, Eigenschaften, Methoden und Ereignisse | ||
Name eines Objekts | Legt den Programmnamen fest, über den das Objekt angesprochen wird. Der Name eines Objekts ist vorgegeben und kann nicht geändert werden | Falsch: |
Der Aufruf eines einzelnen Befehls ohne den Zusatz einer Eigenschaft oder einer Methode ist jedoch nicht erlaubt | ||
Objekte werden also immer im Zusammenhang mit einer Eigenschaft oder einer Methode angesprochen (Beispiel: Name.Eigenschaft) | MsgBox "Es sind " & Screen.FontCount & "Schriften installiert" | |
Auf einen Objektnamen folgt immer eine Eigenschaft oder eine Methode. Beide werden durch einen Punkt voneinander getrennt. Kombinationen daraus bezeichnet man als ObjektAusdruck | Variable = ObjektName.Eigenschaft.Eigenschaft Anzahl = rsLagerbestand.Fields("Artikel").Value | |
Klasse eines Objekts | Gibt die Abstammung des Objekts an und bestimmt damit, über welche Eigenschaften, Methoden und Ereignisse es verfügt | Variable ObjektName Klasse Private rsSpieler As Recordset |
Im obigen Beispiel macht der Befehl die Variable aber lediglich bekannt. Ein Anlegen des Objekts im Arbeitsspeicher findet hier noch nicht statt. Dies wird irgendwann später durch einen Set-Befehl nachgeholt: | Set rsSpieler = New Recordset | |
Eigenschaft des Objekts | Weist bestimmte Attribute (z. B. Farbe, Überschrift) zu, die das Verhalten und Aussehen des Objekts festlegen | cmdStart.Caption = "Beispiel" |
Methode des Objekts | Ermöglicht es, mit dem Objekt eine bestimmte Aktion durchzuführen (löscht hier die Innenfläche des aktuellen Formulars) | Me.Cls |
Ereignis eines Objekts | Wird dazu benutzt, dass das Objekt mit seiner Außenwelt in Verbindung treten kann. Passiert etwas in dem oder mit dem Objekt, wird ein Ereignis ausgelöst, das zum Aufruf einer EreignisProzedur führt | Beispiel: Click-Ereignis einer Schaltfläche |
Der Prozedur-Name einer Ereignis-Prozedur setzt sich aus dem Objekt-Namen und dem Ereignis-Namen zusammen, wobei beide durch einen Unterstrich getrennt werden | Sub cmdStart_Click () MsgBox "Feierabend." & vbCrLf & "Ab nach Hause." End Sub |
Stichwort | Hinweise | Syntax Beispiele |
---|---|---|
Arbeiten mit der IDE | Neue Projektdateien stets mit einem sinnvollen Namen abspeichern; niemals mit der Vorgabe Projekt1.vbp. Es besteht die Gefahr des Überschreibens | Zinsrechner.vbp |
Neue Formulare stets mit einem sinnvollen Namen abspeichern, niemals mit der Vorgabe Form1.frm. Es besteht die Gefahr des Überschreibens | frmBestandskontrolle.frm | |
Den Programmstart eines Projekts sollte man nur über die Tastenkombination [Strg + F5] ausführen. Dies führt dazu, dass das gesamte Projekt übersetzt wird und Fehlerquellen (z. B. nicht deklarierte Variablen) gemeldet werden | Strg + F5 | |
Projekte | Nach dem Start von VB wird allgemein folgender Projekttyp gewählt: | Standard-Exe |
Eine Projektdatei enthält keine ausführbaren Programmbefehle; sie enthält lediglich die Namen aller an dem Programm beteiligten Module sowie die Einstellungen aller Projektoptionen | ||
Ausführbare Programmbefehle enthalten nur die folgenden drei Modultypen: | Formulare, allgemeine Module, Klassenmodule | |
Komponenten | sind Steuerelemente und Formulare, also Software-Bausteine, die über Eigenschaften, Methoden und Ereignisse angesprochen werden | |
Compiler | Die Aufgabe des Compilers ist es, aus dem Programmtext ein ausführbares Programm zu machen | Menü Datei: Exe-Datei erstellen |
Man unterscheidet P-Code (ein Zwischencode, der von der Laufzeitbibliothek interpretiert werden muss), sowie Maschinencode, der aus reinen CPU-Befehlen besteht und etwas schneller ausgeführt wird | P-Code | |
Exe-Dateien können nur ausgeführt werden, wenn folgende Laufzeitbibliotheks-Datei auf dem System vorhanden ist: | Msvbvm60.dll |
Stichwort | Hinweise | Syntax Beispiele |
---|---|---|
Formulare | sind leere Arbeitsflächen, auf denen die Steuerelemente für die Ein- und Ausgabe von Daten angeordnet werden. Formulare verhalten sich sonst rein passiv | Erweiterung: *.frm |
Über das Menü Projekt: Formular Hinzufügen kann man jederzeit weitere Formulare in das Projekt integrieren | ||
Diese werden jedoch nach einem Programmstart nicht automatisch angezeigt, sondern müssen (z. B. über die Show-Methode) geladen und sichtbar gemacht werden | ||
Auf einem Formular kann zu einem Zeitpunkt nur ein Steuerelement Tastatureingaben entgegennehmen. Dieses Steuerelement wird als das Steuerelement mit dem Eingabefokus bezeichnet | ||
allgemeine Module | --> | Erweiterung: *.bas |
Klassenmodule | --> | Erweiterung: *.cls |
Deklarationen | Der Deklarationsteil eines Moduls kann keine Befehle enthalten | Dim Heimspiel As Integer |
Typen- und Funktionsdeklarationen in einem Formularmodul muss ein Private-Befehl vorausgehen. Das bedeutet, dass sie nur in diesem Modul, auch nicht von anderen Modulen aus, angesprochen werden können | Option Explicit Private Kapital As Currency | |
Format-Funktion | Über diese Funktion kann man Zahlen in eine bestimmte optische Form bringen (z. B. Währungs- oder Datumsangaben). Wichtige Formatbezeichner und deren Bedeutung sind: | |
Currency: hier wird eine Zahl gemäß den Einstellungen der Systemsteuerung als Währungsstring zurückgegeben: | lblAusgabe1.Caption = Format$(12.50, "Currency") | |
Fixed: es wird mindestens eine Vor-, und höchstens zwei Nachkommastellen angezeigt, wobei eine automatische Rundung stattfindet: | Me.Print "Kosten:"; Format$(Kosten1, "Fixed") | |
Percent: die Prozentdarstellung: | Me.Print "Kosten:"; Format$(0.12, "Percent") | |
Short Date: stellt das kurze Datumsformat dar (z. B. 25.06.23): | ||
Long Date: stellt das lange Datumsformat dar (z. B. Mittwoch, 25. Juni 2023): | ||
Scientific: die wissenschaftliche Darstellung von Zahlen: | Print Format$(2*3.14*d, "Scientific") | |
Zuweisungen | Variablen muss man einen Wert zuweisen, sonst haben sie in einem Programm keinen Nutzen | GeldBetrag1 = 100 Mehr2WERT = 16 |
Objektvariablen erhalten ihren Wert immer über einen Set-Befehl. Beispiel: Die (Objekt)Variable Formular erhält eine "Referenz" auf ein Objekt, in diesem Fall das Formular mit dem Namen frmHaupt | Set Formular = frmHaupt | |
Prozeduren | Alle Befehle, die sich in Prozeduren, Ereignisprozeduren und Funktionen befinden, werden im Prozedur-Teil eines Formularmoduls untergebracht | |
Ereignis-Prozeduren sind Prozeduren in einem Formular, die nicht vom Programm, sondern nach Eintreten eines Ereignisses (z. B. Mausklick) aufgerufen werden | Sub cmdStart_Click () Rakete.Starten End Sub | |
Berechnungen | Priorität der Operatoren: | ^ PotenzOperator - Vorzeichen-Operator, unäres Minus * / Punktrechnung \ IntegerDivision Mod Division mit Rest + - Strichrechnung =, <>, <, >, <=, >= (Vergleichs-Operatoren) NOT, AND, OR, XOR, EQV, IMP |
Stichwort | Hinweise | Syntax Beispiele |
---|---|---|
Steuerelemente | sind Komponenten, die z. B. in der Werkzeugsammlung enthalten sind. Die wichtigsten Elemente sind standardgemäß "fest" eingebaut, können also aus der Werkzeugsammlung nicht entfernt werden | |
besitzen Namen, die zunächst automatisch vergeben werden, jedoch aussagelos sind (z. B. Form1, Label1). Es wird empfohlen, jedem Element einen aussagekräftigen Namen zu geben, dem ein Präfix vorangesetzt wird. Es gelten folgende Namenskonventionen: | ||
frm = Form Formular | frmBestand | |
fra = Frame Rahmenfeld | fraOptionen | |
cmd = CommandButton Schaltfläche | cmdStart | |
lbl = Label Bezeichnungsfeld | lblAusgabeZins | |
txt = TextBox Textfeld | txtEingabe | |
pic = PictureBox Bildfeld | picAusgabeWert | |
img = Image Anzeige (von Bildern) | imgMeinBild | |
opt = OptionButton Optionsfeld | optEnglisch | |
chk = CheckBox Kontrollkästchen | chkBarzahlung | |
tmr = Timer Zeitgeber | tmrTimer1 | |
lst = Listbox Listenfeld | lstMannschaften | |
cbo = ComboBox Kombinationsfeld | cboSchriftarten | |
vsc = VScroll Vert. Bildlaufleiste | vscVertikal | |
hsc = HScroll Horiz.Bildlaufleiste | hscHorizontal | |
besitzen Eigenschaften, die das Verhalten und Aussehen ändern können. Neue Werte kann man im Eigenschaftenfenster (Taste F4) zuweisen, z. B.: | Name, BorderStyle, Caption, Left, Top, Backcolor, Sorted, Font... | |
Über das Menü Projekt: Komponenten kann man jederzeit neue Steuerelemente in die Werkzeugsammlung laden. Diese müssen sich in Gestalt einer OCX-Datei auf dem PC befinden | ||
Größe und Position der Steuerelemente werden in der Maßeinheit Twips angegeben. Das Twip ist eine Längeneinheit, die von der Bildschirmauflösung abhängig ist | Über die ScaleMode-Eigenschaft kann man aber auch andere Maßeinheiten einstellen! | |
567 Twips entsprechen einem logischen Zentimeter, also einem Bildschirmzentimeter, der beim Ausdruck 1 cm lang ist | ||
Steuerelemente-Feld | Steuerelemente in einem Steuerelemente-Feld besitzen immer einen Index, der in Klammern auf den Namen des Steuerelements folgt | For counter = 1 To 20 txtEingabe(counter).Text = "AlterWert" Next |
Dieselbe Schleife geht auch mit LBound und UBound: | For counter = txtBox.LBound To txtBox.Ubound txtBox(counter).Text = "NeuerWert" Next | |
Oder auch gemischt: | For n = 0 To picBild.Ubound picBild(n).BackColor = vbRed Next | |
Bei der Ereignisprozedur kann der Index wie folgt übergeben werden: | Private Sub picBild_Click(Index As Integer) Befehle End Sub | |
Ereignisse der Steuerelemente | Wichtige Ereignisse der Steuerelemente (SE) sind: | |
das SE wird (doppelt) angeklickt | Click, DblClick | |
das SE erhält den Fokus | GotFocus | |
eine Taste wird gedrückt, aber noch nicht wieder losgelassen. Der Tastaturcode der gedrückten Taste wird übergeben | KeyDown | |
eine Taste wird gedrückt und das SE besitzt den Fokus. Hier wird der Zeichencode der gedrückten Taste übergeben | KeyPress | |
eine gedrückte Taste wird wieder losgelassen. Der Tastaturcode der gedrückten Taste wird übergeben | KeyUp | |
das SE verliert den Fokus | LostFocus | |
eine der Maustasten wird geklickt, wenn sich der Mauszeiger in der Innenfläche des SE befindet | MouseDown | |
der Mauszeiger wird in der Innenfläche des SE bewegt | MouseMove (Argumente: Button, Shift, X, Y) | |
die Maustaste wurde wieder losgelassen | MouseUp | |
bevor das SE den Fokus verliert, kann (z. B. bei Textfeldern) eine Überprüfung des Inhalts durchgeführt werden | Validate | |
Jedes Steuerelement kann auf eine bestimmte Anzahl an Ereignissen reagieren, jedoch nur das SE, das den Eingabefokus besitzt | ||
Auf einem Formular wird der Eingabefokus auf die nächste Schaltfläche oder das nächste Textfeld mit der Tab-Taste dirigiert | ||
Tastaturereignisse sind z. B.: | KeyDown, KeyPress, KeyUp | |
"Zeichen"-Tasten sowie die Eingabetaste. Diese lösen Ereignisse in Zeichencode aus: | Private Sub Form_KeyPress(KeyAscii As Integer) If KeyAscii = vbKeyEnter Then | |
Einige Tasten können kein KeyPress-Ereignis auslösen, z. B. die Umschalttaste. Hier können nur Ereignisse mit dem Tastaturcode ausgelöst werden: | Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) | |
Steuerelement Command Button | ist für das Auslösen von Aktionen zuständig (Bestätigen, Abbruch, Ja, Nein, OK usw...). Ausgelöst wird mit einem Mausklick auf die Schaltfläche: | Sub cmdStart_Click () |
kann beliebige Größen annehmen und Bilder enthalten, muss aber stets rechteckig sein. Wichtige Eigenschaften sind: | ||
Caption: Legt den Text fest, der in der Schaltfläche erscheint | cmdStart.Caption:="Titelstory" | |
Cancel: Ist diese Eigenschaft True, kann das Click-Ereignis auch durch Betätigen der Esc-Taste ausgelöst werden | cmdStart.Cancel = True | |
Picture: Legt eine Bilddatei fest, die bei Style=1 in der Innenfläche angezeigt wird | cmdStart.Picture = "Bild.gif" | |
Style: Legt fest, ob sich die Schaltfläche normal (Style=0) oder grafisch (Style=1) verhält | cmdStart.Style = 1 | |
Steuerelement Label | kann nur kleine Textmengen ausgeben, also nicht entgegennehmen. Den Text gibt man nur in das Eigenschaftsfeld Caption ein. Beispiel: Beim Berühren mit der Maus wird der Text im Label unterstrichen: | Private Sub Label1_MouseMove () Label1.Font.Underline = True |
kann keinen Eingabefokus erhalten. Mit Label werden andere Steuerelemente nur beschriftet, z. B. als Überschrift für eine TextBox. Wichtige Eigenschaften sind: | ||
BorderStyle: das Feld erhält eine Umrandung | Label1.BorderStyle = 1 | |
Alignment: der Text kann links, rechts oder zentriert ausgerichtet werden | Label2.Alignment = 0 | |
Steuerelement TextBox | kann Text ausgeben, sowie Text entgegennehmen. Den Text gibt man entweder in das Feld Eigenschaften Text, oder direkt in die auf dem Formular angeordnete Textbox ein. Löschbefehl: .Text = "" | txtBeispiel.Text = "Hallo" |
enthält keine Caption-Eigenschaft, also nicht mit dem Steuerelement Label verwechseln. Wichtige Eigenschaften sind: | ||
MultiLine=True (in Verbindung mit der Eigenschaft ScrollBars 1, 2 oder 3): man kann beliebig viele Zeichen eingeben (bei Drücken der Return-Taste springt die Textmarke dann in die nächste Zeile) | txtBeispiel.MultiLine = True | |
MaxLength=0 bedeutet eine maximale Textlänge von 65.000 Zeichen. Wird die Eigenschaft MultiLine=True hinzugeschaltet, können etwa 2 Milliarden Zeichen dargestellt werden | txtBeispiel.MaxLenght = 10 | |
PasswordChar legt ein Zeichen fest (z. B. *), das anstelle des eingegebenen Zeichens angezeigt wird. Auf diese Weise lassen sich eingegebene Worte "maskieren". Hierzu muss man die Eigenschaft MultiLine=False setzen | txtBeispiel.PasswordChar = "#" | |
SelStart gibt die Position des selektierten Textes relativ zum Beginn des Textes an (das erste Zeichen besitzt die Position 0). Durch Setzen von SelStart kann der Beginn der Markierung verschoben werden | With txtStartKapital .SelStart = 0 .SelLength = Len(.Text) .SetFocus End With | |
SelLength gibt die Länge des ausgewählten Textes in Zeichen an. Durch Setzen von SelLength in der Prozedur kann die Länge des selektierten Textes verändert werden | ||
SelText stellt den selektierten Text dar | ||
HideSelection legt fest, ob die Anzeige einer Markierung erhalten bleibt, wenn das Textfeld den Eingabefokus verliert (=False), oder aufgehoben wird (=True) | txtBeispiel.HideSelection = True | |
Steuerelement PictureBox | ist für die Anzeige von Text und Bildern zuständig. Löschbefehl = .Cls | picBeispiel.Cls |
Unterstützt werden die Grafikformate: bmp, gif, jpg, wmf, ico, cur, emf, dib | ||
kann man während der Programm-Ausführung nicht in der Größe ändern (jedenfalls nicht ohne Tricks) | ||
Steuerelement Image | ist ausschließlich für die Anzeige von Bildern zuständig | |
kann man während der Programm-Ausführung in der Größe ändern | ||
Unterstützt werden die Grafikformate: bmp, gif, jpg, wmf, ico, cur, emf, dib | ||
Mit der Eigenschaft Stretch lassen sich Bitmaps stufenlos vergrößern oder verkleinern | imgBild.Stretch = True | |
Steuerelement OptionButton | Wird nur in einer Gruppe eingesetzt. In dieser Gruppe kann immer nur ein OptionButton aktiv sein | |
Mehrere unabhängige Gruppen müssen in Frames oder PictureBoxes gruppiert werden, die die Rolle eines Containers innerhalb des Formulars spielen. Zuerst muss aber der Container angelegt und dann die OptionButtons im Container erzeugt werden | ||
Style = 1 (der OptionButton erscheint als "CommandButton"; ein Bild kann eingefügt werden) | cmdButton.Style = 1 | |
Value = True (das Options-Feld ist eingedrückt) | Value = True | |
Steuerelement CheckBox | Es können beliebig viele Kontrollkästchen unabhängig voneinander ein- oder ausgeschaltet werden | |
Style = 1 (die CheckBox erscheint als "CommandButton"; ein Bild kann eingefügt werden) | Style = 1 | |
Value = 1 (die CheckBox ist angekreuzt) | Value = 1 | |
Steuerelement Timer | ist für zeitgesteuerte Programmausführung zuständig. | |
Enabled schaltet den Zeitgeber ein; z. B. beim Laden des Programms: | Private Sub Form_Load() Timer1.Enabled = True | |
Interval setzt einen Zeitintervall (1000 = eine Sekunde) | Timer1.Interval = 1000 | |
Auszuführende Timer-Befehle stehen erst in der Prozedur: | Private Sub Timer1_Timer() | |
z. B. Bildweite in gewissen Zeitabständen vergrößern: | Bild1.Width = Bild1.Width + 100 | |
z. B. Farbe eines Formulars verändern: | Me.BackColor = RGB(255, 0, 0) | |
z. B. Zeitanzeige der Titelleiste ständig aktualisieren: | Me.Caption = "Es ist" & Time & "Uhr" | |
z. B. Bildfeld über ein Formular bewegen: | Image1.Move Image1.Left + DeltaX, Image1.Top + DeltaY | |
Steuerelement ListBox | Löschbefehl = Clear. Gegenüber der ComboBox hat die ListBox folgende Vorteile: Bei Style = 1 werden die Einträge in Form von Kontrollkästchen angezeigt; Columns-Eigenschaft (Anzahl von Spalten); MultiSelect, Selected sowie SelCount | lstBeispiel.Clear |
List, ListCount, ListIndex gibt den Wert eines Listenfeldes zurück oder weist ihn zu. Der erste Wert hat immer den Index 0 | lstKunden.List(7) = "Herr Meier" Wert = lstArtikel.List(lstArtikel.ListIndex) | |
AddItem fügt einen Wert in das Listenfeld hinzu. Wird der Wert an eine bestimmte Position gesetzt, erhält er ein zweites Argument. RemoveItem löscht einen Wert (zum Löschen aller Werte Clear verwenden) | lstMannschaft.AddItem "Hamburger SV" lstMannschaft.AddItem "Köln", 18 | |
MultiSelect = 1 (man kann einzelne Einträge einer Liste mit Mausklicks auswählen) MultiSelect = 2 (man kann Einträge einer Liste mit gedrückter Maustaste fortlaufend auswählen) | For n = 0 To lst3.ListCount - 1 If lst3.Selected(n) = True Then _ Debug.Print lst3.List(n) Next n | |
Durch Setzen der Selected-Eigenschaft auf False kann eine Auswahl wieder aufgehoben werden | ||
Steuerelement ComboBox | List, ListCount, ListIndex gibt den Wert einer ComboBox zurück oder weist ihn zu. Der erste Wert hat immer den Index 0 | |
Textfeld wird mit Pfeilsymbol angezeigt, dass eine Liste öffnet = Standardeinstellung | Style = 0 | |
Text und geöffnete Liste werden angezeigt; die Liste muss über die Height-Eigenschaft sichtbar gemacht werden | Style =1 | |
Nur Listenauswahl möglich, jedoch keine Eingabe ins Textfeld | Style = 2 | |
Steuerelemente HScroll und VScroll | Horizontale und vertikale Bildlaufleisten sind Elemente, mit deren Hilfe man einen Wert in einem bestimmten Bereich, den man über die Eigenschaften Min und Max festlegt, einstellen kann. Negative Werte sind erlaubt | hscRegler.Min = -10 hscRegler.Max = 10 |
Value (Aktueller Wert der Bildlaufleiste) | vscRegler.Value = 0 | |
LargeChange und SmallChange: Legt den Betrag fest, um den sich die Value-Eigenschaft ändert, wenn man die Einstellfläche (Large) oder eines der beiden Pfeilsymbole (Small) anklickt. Negative Werte sind nicht erlaubt | vscRegler.LargeChange = 2 | |
Scroll: dieses Ereignis wird ausgelöst, wenn der Schieber mit der Maus verschoben wird | ||
Errorhandling | Fehlerbehandlung aktivieren | On Error Goto err_handler |
Fehlerbehandlung übergehen | On Error Resume Next | |
Fehlerbehandlung deaktivieren | On Error Goto 0 | |
Der fehlerverursachende Befehl wird noch einmal ausgeführt | Resume | |
Der fehlerverursachende Befehl wird nicht noch einmal ausgeführt | Resume Next | |
Debug-Methode, um das Programm an einer bestimmten Stelle anzuhalten | Stop | |
Error-Objekt, das einen Fehlertext liefert | MsgBox Err.Description | |
Error-Objekt, das eine Fehlernummer liefert | MsgBox Err.Number | |
Löst einen Fehler aus | Err.Raise |
© Visual Basic Grundlagen: Befehle und Funktionen wurde dokumentiert von Winfried Brumma (Pressenet), 2020. Bildnachweis: Arbeiten mit Laptop und Ipad, CC0 (Public Domain Lizenz).
Sie schreiben anspruchsvolle Romane und Erzählungen? Wir suchen neue Autorinnen und Autoren. Melden Sie sich!
Wenn Sie die Informationen auf diesen Seiten interessant fanden, freuen wir uns über einen Förderbeitrag. Empfehlen Sie uns auch gerne in Ihren Netzwerken. Herzlichen Dank!
Werden Sie Autor / Autorin bei Pressenet! Schreiben Sie in unserem Online Literaturmagazin Beiträge zum Thema Gesundheit. Info: Autor/in werden
Sitemap Impressum Datenschutz RSS Feed