Elemente VBA
Schlüsselelemente
Prozeduren
Funktionen
Variablen
Konstanten
Datentypen
Kontrollstrukturen
Ereignisse
Objektmodelle
Beenden des Debugging-Modus
Stopzeichen in der Makroleiste
Was ist Voraussetzung, um in den Debug-Modus zu gelangen?
Um gezielt in den Debug-Modus zu gelangen, muss zuvor ein Breakpoint gesetzt sein. Ein Breakpoint sollte in der Zeile gesetzt werden, ab der der Quellcode getestet werden soll. Gesetzt wird ein Breakpoint durch Klick in den grauen Balken am linken Rand neben der entsprechenden Quellcodezeile. Beim Aufruf der Prozedur, z.B. durch Klick auf den entsprechenden Button, stoppt das Programm in der Zeile, die durch den Breakpoint gekennzeichnet ist.
Wozu dient das Lokal-Fenster und wie kann es eingeblendet werden?
Das Lokal-Fenster zeigt, wenn die Programmausführung im Debug-Modus angehalten wurde, den Wert der lokalen Variablen, also derjenigen Variablen, die innerhalb einer Prozedur deklariert wurden. Im Step-by-Step-Modus mithilfe der Taste F8 kann beobachtet werden, wie der Wert der Variablen durch das Ausführen der einzelnen Befehle sich ändert, und damit kann häufig die Ursache von Fehlern ermittelt werden. Das Lokal-Fenster kann über den Menüpunkt Ansicht/Lokal-Fenster eingeblendet werden.
Wie wird der Rückgabewert einer Funktion angewiesen?
Der Rückgabewert einer Funktion wird innerhalb der Funktion angewiesen, indem der zurückzugebende Wert dem Funktionsnamen zugewiesen wird. Also wenn z.B. eine Funktion den Namen „MeineFunk“ hat, muss es innerhalb der Funktion eine Anweisung geben, die lautet: „MeineFunk = Wert“
Taste mit der man im Debugger von Variable zu Variable springen kann
F8
Funktion Logal-Fenster (Debugging)
Das Lokal-Fenster zeigt die lokalen Variablen, also die Variablen, die innerhalb einer Prozedur deklariert wurden, und ihre Werte. Im Beispiel sieht man, dass die Variablen „betrag“ und „rabatt“ den Wert 0 haben und vom Typ Double sind.
Taste Sprung bis zum nächsten Preakpoint oder bis zum Programm-Ende
F5
Wichtiger Faktor Übergang von Funktionen in einer festen Funktionsfolge
Bei der Übergabe von Parametern an eine Funktion ist nicht nur ihr Datentyp, sondern auch ihre Reihenfolge zu beachten. Wird ein optionaler Parameter ausgelassen, muss durch eine entsprechende Anzahl von Kommas die Position der übergebenen Werte deutlich gemacht werden.
Worin besteht der Unterschied zwischen den beiden folgenden If-Strukturen?
1. If Bedingung1 Then Anweisungen1
If Bedingung2
Then Anweisungen2
End If Else Anweisungen3 End If
2. If Bedingung1 Then Anweisungen1
ElseIf Bedingung2 Then Anweisungen2
Else Anweisungen3
End If
In der ersten If-Struktur wird Bedingung2 nur geprüft, wenn Bedingung1 wahr ist.
In der zweiten If-Struktur wird Bedingung2 nur geprüft, wenn Bedingung1 nicht wahr ist.
2 Was ist Unterschied zwischen den folgenden beiden Ausdrücken? Wann sind sie jeweils wahr?
1. If (Bedingung1 Or Bedingung2) And (Bedingung3 Or Bedingung4) Then
2. If Bedingung1 Or Bedingung2 And Bedingung3 Or Bedingung4 Then
Ausdruck 1 ist wahr, wenn mindestens eine von Bedingung1 oder 2 wahr ist und eine von Bedingung3 oder 4 oder auch wenn jeweils beide wahr sind.
Ausdruck 2 ist wahr, wenn entweder Bedingung1 wahr ist oder Bedingung 2 und 3 oder Bedingung 4. Der gesamte Ausdruck wäre z.B. auch wahr, wenn etwa bloß Bedingung1 oder bloß Bedingung4 wahr wären.
Welche Voraussetzungen rechtfertigen das Erstellen eigener Funktionen?
Eine eigene Funktion zu erstellen bietet sich immer dann an, wenn erkannt wird, dass eine Funktionalität wiederholt gebraucht wird. In der Funktion kann der erforderliche Quellcode programmiert und dann im Projekt an all den Stellen aufgerufen werden, wo die Funktionalität gebraucht wird. Sind Änderungen an der Funktionalität erforderlich, können diese an einer Stelle vorgenommen werden und werden dann überall dort wirksam, wo die Funktion genutzt wird.
Welche Rolle spielt der Ort, an dem eine Funktion deklariert wird?
Der Ort der Deklaration einer Funktion legt ihre Sichtbarkeit fest, also die Frage, von wo aus innerhalb eines Projekts eine Funktion aufgerufen werden kann. In einem Objektmodul, wie z.B. dem Code-Bereich eines Userforms, deklarierte Funktionen können nur in diesem aufgerufen werden. Funktionen, die im gesamten Projekt sichtbar und damit nutzbar sein sollen, müssen in einem freien Modul deklariert werden. Ihre Sichtbarkeit ist dort standardmäßig „Public“. Das Schlüsselwort kann zusätzlich vor die Funktionsdeklaration gesetzt werden.
Bedeutung logischer Operator ANd
Und
Bedeutung logischer Operator Or
Oder
Bedeutung logischer Operator Xor
Exklusives Or
Bedeutung Operator Not
Nicht
Anwendung logischer Operator And
Bedingung1 And Bedingung2
Der gesamte Ausdruck ist nur wahr, wenn beide Bedingungen wahr sind.
Wird Bedingung1 als falsch erkannt, wird Bedingung2 nicht geprüft, weil der gesamte Ausdruck nicht mehr wahr sein kann
Anwendung logischer Operator OR
Anwendung1 Or Anwendung2
Der gesamte Ausdruck ist wahr, wenn eine der Bedingungen wahr ist oder auch beide
Anwendung logischer Operator Xor
Anwendung1 Xor Anwendung2
Der gesamte Ausdruck ist wahr, wenn nur eine der Bedingungen wahr ist.
Sind beide Bedingungen wahr, wird der Ausdruck als falsch interpretiert.
Das „Xor“ kommt selten vor.
Anwendung des logischen Operators Not
Not Bedigung 1
Der Ausdruck ist wahr, wenn die Bedingung nicht erfüllt ist.
Not verkehrt eine Bedingung in ihr Gegenteil.
Damit sind Bedingungen manchmal sprachlich einfacher zu formulieren.
Z.B. If Not IsNumeric(eingabe) Then wenn es darum geht, nichtnumerische Werte zu verarbeiten.
Ábk vbCrLf“
Carriage return Line feed
Bedeutung „vbCrLf
Zeilenumbruch in Textboxen
Formatbeschreibung für Währung
"#,##0.00 €"
Wie können Bedingungen für ein If-Statement formuliert werden?
Eine Bedingung ist ein Ausdruck, der als wahr oder falsch interpretiert werden kann. Meistens handelt es sich bei Bedingungen um Vergleiche. Diese werden mithilfe von Vergleichsoperatoren formuliert. Z.B. wäre der Ausdruck „If eingabe = 100 Then“ eine korrekte Bedingung oder auch eine Formulierung wie „If Range(„C2“) >= 0 Then“. Aber auch ein Ausdruck wie „If IsNumeric(eingabe) Then“ wäre korrekt, da der Rückgabewert der Funktion IsNumeric() true oder false ist.
Nennen Sie drei Datentypen und beschreiben Sie ihre Bedeutung?
Der Datentyp „String“ dient dazu, Texte und Zahlen aufzunehmen. Zugewiesene Werte müssen in Gänsefüßchen eingekleidet werden.
Der Datentyp „Integer“ dient zur Aufnahme von Ganzzahlen bis maximal 32.767.
Der Datentyp „Variant“ kann beliebige Werte aufnehmen.
Wozu dient die Zeichenfolge (Leertaste) + in einem VBABefehl?
Mit der Zeichenfolge (Leertaste) + ist es möglich, einen VBA-Befehl zu umbrechen. Die Zeichenfolge muss direkt am Ende einer Zeile vor dem Zeilenumbruch eingegeben werden.
Art wie eine Konstante im Quellcode deklariert wird
Const MeineKonstante As Datentyp = Wert
Orte zur Deklaration von Konstanten
Innerhalb einer Prozedur direkt hinter dem Prozedurkopf, wie Variablen. Es handelt sich dann um „lokale“ Konstanten, die nur in der Prozedur bekannt sind, in der sie deklariert sind. Das macht selten Sinn, da damit der Vorteil von Konstanten kaum genutzt wird.
Im Deklarationsbereich des Code-Bereiches eines Objekts, z.B. eines Formulars.Als Deklarationsbereich wird der Bereich ganz oben, am Anfang eines Code-Bereiches bezeichnet. Darauf weist auch der Begriff (Deklarationen) im rechten Pull-Down-Menü hin. An dieser Stelle können diverse Deklarationen vorgenommen werden. Eine hier deklarierte Konstante ist „modulglobal“, d.h., sie ist im gesamten Modul bekannt und kann so in allen Prozeduren dieses Moduls verwendet werden, nicht aber im Code-Bereich anderer Formulare.
Kann eine Konstante im Deklarationsbereich eines freien Moduls deklariert werden:Das Schlüsselwort „Public“ macht eine an dieser Stelle deklarierte Konstante im gesamten VBA-Projekt sichtbar. Es handelt sich dann um eine „globale“ Konstante. Sie kann dann in allen Modulen, Formularen oder Excel-Objekten des VBA-Projektes genutzt werden. Das ist der ideale Ort zur Deklaration von Konstanten, um ihren Vorteil vollständig zu nutzen. Die beiden anderen erwähnten Orte zur Deklaration können aber gelegentlich auch ihre Berechtigung haben. Dort können Konstanten aber – sinnvollerweise – nicht als „Public“ deklariert werden. Das würde einen Syntaxfehler auslösen.
Wichtiger Faktor bei der Mehrfachnennung von Konstanten
Zwei gleichnamige Konstanten in einem Projekt sollte es nicht geben
Das Dezimaltrennzeichen in VBA
Punkt
Schlüsselwort, das Konstanten deklariert
Konstanten werden mit dem Schlüsselwort „Const“ deklariert.
Vorteil von KOnstanten
An der richtigen Stelle deklariert, kann diese Konstante im gesamten VBA-Projekt verwendet und mit ihr gerechnet werden. Der große Nutzen von Konstanten besteht darin, dass über ihren sprechenden Namen im gesamten Projekt mit ihrem Wert gearbeitet werden kann. Muss der Wert sich ändern, so muss die Änderung nur an der Stelle der Deklaration vorgenommen werden, um an allen Stellen wirksam zu werden, an denen mit der Konstanten gearbeitet wird.
Unterschied zwischen Konstanten mit dem Präfix vb und dem Präfix xl
Die Sprache VBA stellt zahlreiche Konstanten zur Verfügung. Mit Präfixen in den Bezeichnungen wird der Nutzungsgrad von Konstanten signalisiert. Z.B. stehen Konstanten, deren Name mit „vb“, wie Visual Basic, beginnt, in allen Office-Programmen zur Verfügung. Es gibt viele Konstanten, deren Name mit dem Präfix „xl“ beginnt. Sie repräsentieren Werte, die nur in Excel-VBA nutzbar sind.
Bedeutung e Intellisense-Hilfe
Menü, dass bei Strg und Space aufploppt und die möglichen Ergänzungen für den Befehl ausgbit.
Funktion von Konstanten
Konstanten dienen dazu, Ausdrücke sprechender zu formulieren.
Beispiel für Konstanten
ist der zweite Parameter der MsgBox()-Funktion – Buttons – von einem numerischen Datentyp. Mit der Zahl 64 z.B. an dieser Stelle wird festgelegt, dass das Informationssymbol auf der MsgBox angezeigt werden soll. Der Ausdruck „vbInformation“ an dieser Stelle macht aber viel sprechender als eine Zahl deutlich, was in der MsgBox zu erwarten ist.
Belegung im Arbeitsspeicher von Konstanten
Kein Arbeitsspeicher von Nöten
Bedeutung „ _“ im Quelltext
erlaubt VBA einen Zeilenumbruch im Befehl
Definitoin KOnstanten
Konstanten sind Namen für Werte.
Definition Datenbereich Single
Gleitkommazahlen einfacher Genauigkeit
Speicherbedarf Single
4 Bytes
Definition Datentyp Double
Gleitkommazahlen mit einer doppelten Genauigkeit
Speicherbedarf Double
8 Bytes
Bedeutung Funktion IsNumeric
Überprüft ob ein Wert oder eine Eingabe eine Zahl ist
Datenbereich Integer
-32768 bis 32767
Speicherbedarf Long (Lange Ganzzahl)
Datenbereich Long (lange Ganzzahl)
-2.147.483.648 bis 2.147.483.647
Speichergrößer LongLong (ganz große Ganzzahl)
Speicherbedarf Long PTR) (sehr lange Zahle n auf 32 bzw 64 Bit-Systemen
4 Bit auf 32 Bit-Systemen
8 Bit auf 64 Bit Systemen
Verschiedene Datentypen
Byte
Boolean
Integer
Long
Longlong
LongPtr
Single
Double
Speicher Datentype Byte
1
Datenbereich Byte
0 bis 255
Speicherbedarf Boolean
2 Byte
Datenbereich Boolean
True
False
Speicherbedarf Integer
Definition Funktionsrückgabewert
Jede Funktion hat einen Rückgabewert. D.h., Funktionen erbringen nicht nur eine Leistung, wie z.B. eine Box am Bildschirm anzuzeigen, sondern sie liefern auch noch eine Information zurück – den Rückgabewert.
Definition Variable
Variablen sind Platzhalter für sich ändernde Werte. Variablen sollten deklariert werden. Variablen haben einen Datentyp.
Schlüsselwort für eine Variablendekliration
Eine Variablendeklaration erfolgt mit dem Schlüsselwort „Dim“ und sieht wie folgt aus:
Dim MeineVar As Datentyp
Definition Schlüsselwort Dim
Dim leitet sich ab von „dimensioniere“ und meint, dass durch diese Anweisung im Arbeitsspeicher des Rechners, auf dem das Programm ausgeführt wird, also dem Ort, an dem sich ein Rechner zur Laufzeit eines Programmes etwas merken kann, Speicherplatz reserviert wird, und zwar von der Größe, die durch den Datentyp angegeben ist. Dieser Speicherplatz kann über den Namen der Variablen
Regeln für die Vergabe von Variabelnamen
Für Variablennamen gelten die Ihnen schon bekannten Regeln für Bezeichner, also vor allem keine Verwendung von Leerzeichen, keine Sonderzeichen, deutsche Umlaute und auch keine Bindestriche. Variablennamen sollten, wie alle anderen Bezeichner, aussagekräftig gewählt werden, sodass aus dem Namen unmittelbar deutlich wird, wofür die Variable genutzt wird. Gleichzeitig sollten Variablennamen nicht übermäßig lang sein.
Funktion des Schlüsselwortes As in einer Variable
Nach dem Schlüsselwort „As“ wird der Datentyp der Variablen angegeben. Über den Datentyp wird festgelegt, welche Art von Information in einer Variablen gespeichert werden kann, also ob z.B. Texte, Zahlen, Datumswerte oder andere Werte. Mit dem Datentyp verbunden ist auch die Speichergröße, die für eine Variable reserviert wird. Im Falle von Zahlendatentypen wird über diese Speichergröße auch der Wertebereich bestimmt, den eine Variable aufzunehmen in der Lage ist
Bester Ort für eine Variabeldekleration
Bei der Variablendeklaration ist noch der Ort der Deklaration wichtig. Der typische Ort zur Deklaration von Variablen ist der, unmittelbar hinter dem Prozedurkopf, also nach der SubAnweisung
Definition lokale variable
An dieser Stelle (Prozedurkopf) deklarierte Variablen werden „lokale“ Variablen genannt, weil ihr Wert nur in der Prozedur bekannt ist und genutzt werden
Unterschiedliche Formen der Variabeldekleration
lokale
globale
modulglobale
Formen der Syntax bei der Kontrollstruktur Schleife
For Next
Do Loop
While Wend
For each in next
Syntax einfache If-Struktur
If Bedingung Then
Anweisung(en)1
[Else]
Anweisung(en)2
Bedeutng Vergleichsoperatur =
gleich
Bedeutung Vergleichsoperator >
größer
Bedeutung Vergleichsoperator <
kleiner
Bedeutung Vergleichsoperator >=
größer gleich
Bedeutung Vergleichsoperator <=
kleiner gleich
Bedeutung Vergleichsoperator <>
ungleich
Formen von Kontrollstrukturen in VBA
Verzweigungen
Schleifen
Funktion der Kontrollfunktion Verzweigung
dienen der Steuerung des Programmablaufs abhängig von Bedingungen
Funktion der Kontrollfunktion Schleife
dienen der wiederholten Ausführung einer Anweisung oder einer Gruppe von Anweisungen
Formen von Syntaxen bei der Kontrollstruktur Verzweigung
If Then Else
Select Case
Worauf ist bei der Benennung von Steuerelementen zu achten?
Bei der Benennung von Steuerelementen ist darauf zu achten, bestimmte Zeichen nicht zu verwenden, wie Leerzeichen, Schrägstrich, Sternchen oder auch deutsche Umlaute oder das ß. Außerdem sollten die Bezeichnungen aussagekräftig gewählt werden. Zu empfehlen ist die Verwendung von Präfixen, die signalisieren, um welchen Steuerelementtyp es sich handelt, z.B. „txt“ für Textboxen.
Was ist der Unterschied zwischen den Eigenschaften „Name“ und „Caption“ eines Userforms?
Der Name eines Userforms dient zu seiner Identifikation im Quellcode. Er ist für den Anwender nicht sichtbar.
Die Eigenschaft „Caption“ entspricht der Titelleiste des Userforms. Sie ist für den Anwender sichtbar und sollte aussagekräftig beschriftet werden.
Mit welchem Befehl kann einer Excel-Zelle der Inhalt einer Textbox zugewiesen werden?
Der Befehl: - Range(„A1“) = Me.txt_Name – weist der Zelle A1 des aktuellen Tabellenblattes den Inhalt einer Textbox mit dem Namen „txt_Name“ zu.
Definition Userform
Userforms sind grafische Oberflächen, die zur Kommunikation mit dem „User“ – dem Benutzer oder Anwender – genutzt werden.
Wie kann einem VBA-Projekt ein Userform hinzugefügt werden?
In der VBA-Entwicklungsumgebung über den Menüpunkt Einfügen/UserForm.
Was bedeuten die Excel-Objekte im Projekt-Explorer?
Die Excel-Objekte repräsentieren die Code-Bereiche der Tabellenblätter und der Datei selbst. Sie dienen vor allem zum Aufnehmen von Ereignisprozeduren.
Was ist eine Ereignisprozedur und wie wird sie aufgerufen?
Eine Ereignisprozedur reagiert auf ein Ereignis eines Objektes, z.B. eines Tabellenblatts. Aufgerufen wird eine Ereignisprozedur, indem das entsprechende Ereignis ausgelöst wird, z.B. das Tabellenblatt aktiviert wird oder die Excel-Mappe geöffnet wird.
Tastenkombination Funktionen
Strg + Space
Bedeutung wenn Parameter in der Parameterinfo in einer eckigen Klammer sind
Diese Parameter sind optional
Was ist ein VBA-Projekt
Als VBA-Projekt wird der Bereich einer Datei bezeichnet, in dem der Quellcode zu einer Datei gespeichert ist. Zum VBA-Projekt gehören die Excel-Objekte, Userforms und freie Module.
Was ist der Unterschied zwischen einem Makro und einer Subprocedure?
Gar keiner. Es handelt sich um Synonyme. Wird aus Excel heraus ein Makro aufgezeichnet, so werden die entsprechenden Befehle als „Subprocedure“ in einem freien Modul des VBA-Projekts der Datei aufgezeichnet.
Tastenkombination zum Öffnen der VBA Benutzer Ebene
Alt + F11
Definition Ereignisprozedur
Ereignisprozeduren sind normale Subprocedures. Ihr Name muss aber bestimmten Konventionen entsprechen: Private Sub ObjektName_EreignisName() End Sub Das Schlüsselwort „Private“ im Prozedurkopf steuert die Sichtbarkeit einer Ereignisprozedur. Ereignisprozeduren sind nur in dem Modul (Code-Bereich) aufrufbar, in dem sie geschrieben stehen.
Farbe grün im Quelltext
Kommentarzeile
Farbe schwarz im Quelltext
unterschiedliche Programmbefehle.
Was ist ein Makro?
Ein Makro ist eine Zusammenfassung von mehreren Excel-Befehlen unter einem Namen. Es kann mit dem Makrorekorder aufgezeichnet werden.
Wie starten Sie den Makrorekorder?
Z.B. über die Entwicklertools im Menüband. Oder auch über das Symbol unten links auf der Statusleiste von Excel.
Wie und wo finden Sie das Ergebnis einer Makroaufzeichnung?
Durch Wechsel in die VBA-Entwicklungsumgebung. Dort findet man den Quellcode eines Makros in einem Modul des VBA-Projekts einer Datei.
Was bedeutet das Schlüsselwort „Sub“?
Das Schlüsselwort „Sub“ leitet sich ab von „subprocedure“ und leitet den Kopf einer VBA-Prozedur ein.
Was bedeutet der Ausdruck „With Selection.Font“?
Selection meint den markierten Zellbereich; Font ist die Eigenschaft „Schrift“ dieses markierten Zellbereichs; der Ausdruck „With Selection.Font“ meint die Möglichkeit, die Schrifteigenschaften des markierten Zellbereichs, also Schriftart, -größe, -farbe etc., anzupassen.
Farbe blau im Quelltext
Quelltext
Definition Schlüsselwörter VBA
Begriffe mit definierter Bedeutung, die nicht für andere Bezeichnungen verwendet werden dürfen, z.B. If
Definition Prozeduren VBA
Zusammenfassung von Befehlen unter einem Namen
Definition Funktonen VBA
Funktionen sind eigentlich dasselbe wie Prozeduren mit der Besonderheit, dass sie einen Wert zurückliefern
Definition Variablen VBA
Platzhalter für sich ändernde Werte
Definition Konstanten VBA
Festgelegte Namen für Werte, die sich nicht ändern
Definition Datentypen VBA
Datentypen legen fest, von welchem Typ ein Wert sein darf oder muss, z.B. Text oder Zahl
Definition Kontrollstrukten VBA
Ermöglichen die Steuerung des Ablaufs eines Programms – wann soll was passieren
Definition Ereignisse VBA
Dinge, die in einem Programm passieren und auf die reagiert werden kann, z.B. Klick auf einen Button
Definition Projektmodell VBA
Die Beschreibung aller Elemente, aus denen ein Programm, wie © z.B. Excel, besteht und auf die mit VBA zugegriffen werden kann
Zuletzt geändertvor 6 Tagen