vba variables option explicit vba
In diesem Tutorial wird erklärt, wie Sie VBA-Variablen deklarieren und verwenden. Informieren Sie sich auch über explizite Optionen, Variablenbereich, statische und konstante Variablen:
In einem Computer werden alle Datenwerte in einem Speicher oder Computerspeicher gespeichert. Um auf diese Werte zugreifen zu können, müssen Sie einen Namen angeben, der diesem Wert zugeordnet ist und in Programmiersprachen als Variable bezeichnet wird.
In diesem Lernprogramm erfahren Sie, wie Sie eine Variable zusammen mit den verschiedenen Arten von Variablenbereichen deklarieren und definieren sowie statische und konstante Variablen im Detail untersuchen.
=> Hier finden Sie A-Z der VBA-Schulungsanleitungen
Was du lernen wirst:
VBA-Variablen
Variablen sind wie Platzhalter für die Werte im Computerspeicher. Variablen können verschiedene Arten von Werten enthalten und diese Werte können sich während der Ausführung des Codes ändern.
Jede Variable hat einen Namen, mit dem auf den Wert zugegriffen wird. VBA hat bestimmte Einschränkungen hinsichtlich der Namensauswahl.
Nachfolgend ist die Liste der Einschränkungen aufgeführt:
- Der Name Ihrer Variablen darf nicht länger als 255 Zeichen sein.
- Ein Variablenname kann nicht mit einer Zahl beginnen.
- Sie können nicht mit Sonderzeichen wie !, @, &,., # Beginnen oder keine Leerzeichen haben.
- Schlüsselwörter werden nicht als Variablenname betrachtet.
Der Compiler gibt einen Fehler aus, wenn Sie diese Einschränkungen verletzen
Beispiel:
Gültige Variablennamen: varName, Result12, First_Number
Ungültige Variablennamen: 123abc, #number, Sub, abc.123
Erste Zahl (Zwischen Wörtern ist kein Leerzeichen zulässig)
Deklarieren einer VBA-Variablen
Wir müssen das benutzen Keiner Schlüsselwort zum Deklarieren einer Variablen. Beim Deklarieren einer Variablen gibt es zwei Abschnitte. 1stist der Variablenname und 2ndist der Wertetyp, der in der Variablen gespeichert werden soll, die als Datentyp bezeichnet wird.
Syntax: Dim VariableName As DataType
Beispiel:
- Dim MyAge As Integer
- Dim My_Percentage As Double
- Dim Full_Name As String
Hier teilen Sie dem Compiler ausdrücklich mit, dass meine Variable nur diese Datentypen speichern soll, und VBA stellt sicher, dass ein Compiler Type Mismatch-Fehler ausgelöst wird, wenn ein für die Variable definierter Wert nicht mit dem Datentyp übereinstimmt.
Beispiel:
Sub example1() Dim Total_Marks As Integer Total_Marks = “” MsgBox Total_Marks End Sub
Wenn Sie sich über den Datentyp der Variablen nicht sicher sind, können Sie den Datentyp mit VBA überspringen. Die unten genannte Syntax ist ebenfalls gültig.
Dim Variablenname
Wenn Sie den Datentyp der Variablen nicht deklarieren, behandelt VBA ihn als Variant-Datentyp und akzeptiert alle Arten von Daten-Ganzzahlen wie Ganzzahlen, Zeichenfolgen, Arbeitsmappen usw. Im selben Programm wird die Variantenvariablen können auch Zeichenfolgenwerte, Ganzzahlwerte und andere Typen akzeptieren.
Sub VarientVariable() Dim Total_Marks Total_Marks = '' MsgBox Total_Marks Total_Marks = 544.33 MsgBox Total_Marks Total_Marks = 522 MsgBox Total_Marks End Sub
Da Total_Marks im Gegensatz zum vorherigen Code eine Variantenvariable ist, gibt der Compiler keinen Fehler aus, wie unten gezeigt.
Hinweis: Denken Sie daran, dass Sie mit VBA eine Variable verwenden können, ohne sie tatsächlich zu deklarieren.
Der folgende Beispielcode liefert auch ein korrektes Ergebnis. In diesem Fall behandelt VBA die Variable automatisch als Variantendatentyp. Dies wird als implizite Erklärung bezeichnet.
Sub VariantVariable() Total_Marks = 444 MsgBox Total_Marks End Sub
Vorteile der Deklaration einer Variablen
- Einfach zu debuggen: Es wird empfohlen, eine Variable vor der Verwendung zu deklarieren. Es gibt uns ein früheres Verständnis der Fehler wie Typinkongruenz und Tippfehler, wodurch das Risiko verringert wird, von der Logik des Programms abzuweichen.
- Bessere Lesbarkeit: Als Team wird es viele Leute geben, die sich den Code ansehen, und das Deklarieren einer Variablen hilft jedem bei der Art der Werte, die die Variable annehmen soll, und hilft den Benutzern, während der Ausführung des Programms geeignete Eingabewerte einzugeben.
- Lagerraum: Wenn Sie eine Variable nicht deklarieren, behandelt VBA sie als Variant-Datentyp, der im Vergleich zu anderen Datentypen den größten Speicherplatz (16 bis 22 Byte) beansprucht. Zum Beispiel, Wenn Sie eine Variable vom Typ Byte verwenden, die nur 1 Byte benötigt, und wenn Sie nicht deklarieren, reserviert VBA am Ende einen Speicherplatz von 16 Bytes, wodurch der Speicher verschwendet wird.
Option Explizit
Um sicherzustellen, dass alle Variablen explizit deklariert sind, müssen wir die Option Explicit-Anweisung verwenden, bevor wir sie verwenden. Es sollte zu Beginn eines Verfahrens in diesem Modul verwendet werden.
Sehen wir uns ein Beispiel an, in dem die Option Explicit Statement nicht verwendet wird.
Sub example3() Dim First_name As String First_name = ' abs' MsgBox Firt_Name End Sub
Führen Sie den Code aus (drücken Sie F5 oder die Schaltfläche Ausführen in der Symbolleiste), und Sie erhalten ein leeres Nachrichtenfeld.
Obwohl Sie die Variable deklariert haben, sind Sie aufgrund des Tippfehlers in der Msgbox Firt_Name in einem leeren Ergebnisfeld gelandet. Option Explicit hilft uns bei der Beseitigung solcher Fehler.
Lassen Sie uns denselben Code mit Option Explicit wiederholen. Geben Sie Option Explicit ein, bevor die Prozedur beginnt.
Option Explicit Sub VarientVariable() Dim First_name As String First_name = ' abs' MsgBox Firt_Name End Sub
Wenn Sie nun den Code ausführen (Drücken Sie die Taste F5 oder Ausführen in der Symbolleiste), wird ein Compilerfehler angezeigt.
Sie können VBA hinzufügen Option Explizit automatisch.
Im VB-Editor Gehen Sie zu Extras -> Optionen -> Wählen Sie 'Variablendeklaration erforderlich'.
Jetzt Option Explizit wird jedes Mal automatisch hinzugefügt, wenn Sie ein neues Modul einfügen oder ein neues Makro aufzeichnen.
Hinweis: Option Explicit wird dem vorhandenen VBA-Code nicht hinzugefügt. Sie müssen es bei Bedarf manuell hinzufügen.
Variablen einen Wert zuweisen
Variablen können mit dem Symbol (=) Werte zugewiesen werden. Wenn Sie in Excel auf eine Zelle verweisen, müssen Sie die Bereichsfunktionen verwenden.
Siehe den folgenden Code.
Sub varValue() Dim var1 As Integer var1 = 10 Range('C1:C14').Value = var1 MsgBox var1 End Sub
Im obigen Beispiel ist var1 eine Variable, die den Wert 10 direkt mit (=) speichert, und die Range-Funktion hilft bei der Eingabe des var1-Werts 10 in der Excel-Zelle C1 bis C14.
Umfang einer Variablen
Jede Variable in einem Programm hat einen definierten Bereich. Dieser Bereich teilt dem Programm die Bereiche mit, in denen die Variable sichtbar ist, d. H. Das Modul oder die Funktion, die die Variable verwenden können oder nicht.
In VBA sind drei Arten von Bereichen für die Variable definiert.
- Umfang auf Prozedurebene
- Privater Bereich auf Modulebene
- Öffentlicher Bereich auf Modulebene
Umfang auf Verfahrensebene
Die in einer Prozedur definierten Variablen, d. H. In der Unter- oder Funktion, können sie nur verwenden. Diese sind für kein anderes Verfahren sichtbar.
Beispiel:
Option Explicit Sub ProcScope() Dim msg As String vartext = 'Varible is visible only inside this Sub' MsgBox vartext End Sub Sub VarNotVisible() MsgBox vartext End Sub
Wenn Sie den obigen Code ausführen, gibt die msgbox für das erste Sub ein korrektes Ergebnis zurück, für das zweite Sub wird jedoch ein Compilerfehler ausgegeben. Weil die Scheitelpunktvariable nur für die 1 sichtbar iststSub und nicht für die 2nd. Da wir Option Explicit verwendet haben, wird ein Compilerfehler angezeigt, wenn Variablen in 2 nicht definiert werdenndsub.
Privater Bereich auf Modulebene
Diese Variablen stehen allen Prozeduren im definierten Modul zur Verfügung. Standardmäßig werden die Variablen mit dem deklariert Keiner sind als privat eingestuft. Es wird jedoch empfohlen, privat hinzuzufügen, um die Lesbarkeit zu verbessern.
Betrachten wir dasselbe Beispiel, aber wir werden die Variable außerhalb der Prozedur deklarieren.
Option Explicit Private vartext As String ‘ Dim vartext As String can also be used Sub PrivateScope() vartext = 'Varible is visible to all procedures' MsgBox vartext, ,”Result from Sub1” End Sub Sub VarIsVisible() MsgBox vartext, ,”Result from Sub2” End Sub
Nach der Ausführung werden Sie feststellen, dass beide Verfahren die richtigen Ergebnisse ohne Fehler zurückgeben. Zum besseren Verständnis haben wir den richtigen Titel in die msgbox eingefügt.
Öffentlicher Bereich auf Modulebene
Diese Arten von Variablen sind für alle Prozeduren und in allen Modulen eines Projekts sichtbar. Fügen Sie 2 Module ein. (Klicken Sie mit der rechten Maustaste auf ein Blatt und fügen Sie -> Module ein).
Geben Sie den folgenden Code in ein Modul ein.
Option Explicit Public vartext As String Sub PrivateScope() vartext = 'Varible is visible to all modules' MsgBoxvartext, , 'Result from Sub1' End Sub
Geben Sie den folgenden Code in das 2. Modul ein.
Option Explicit Sub VarIsVisible() MsgBoxvartext, , 'Result from Sub2' End Sub
Die Ergebnisse sind unten gezeigt
Betrachten wir ein praktisches Beispiel und verstehen Sie den gesamten Umfang besser.
Im Anhang befindet sich die Referenzdatei für den obigen Code.
Statische Variable
Normalerweise bleibt der Wert der Variablen nur vom Prozeduraufruf bis zum Prozedurende erhalten. Der Wert bleibt nicht erhalten, sobald die Ausführung der Prozedur beendet ist.
Zum Beispiel Im obigen Code wird der Wert von firstNo und secondNo entfernt, sobald die Prozedur endet. Wenn Sie das nächste Mal den Code ausführen, erhalten firstNo und secondNo denselben Wert wie im Code definiert.
Statische Variablen sind jedoch solche, die den Wert der Variablen auch nach der Ausführung beibehalten. Eine statische Variable ist nur innerhalb eines Sub oder einer Funktion zulässig.
Betrachten Sie den folgenden Code mit einer nicht statischen Variablen.
Option Explicit Sub staticVariable() Dim count As Integer count = count + 1 Debug.Print count End Sub
Jedes Mal, wenn Sie F5 drücken, erhalten Sie nur 1.
Jetzt deklarieren wir die Variable als statisch.
Option Explicit Sub staticVariable() Static count As Integer count = count + 1 Debug.Print count End Sub
Jedes Mal, wenn Sie den Code ausführen (F5), hat das Ergebnis einen erhöhten Wert für die Anzahl wie 1,2,3 usw., da die statische Variable ihren Wert beibehalten hat.
Hinweis: Die statische Variable behält den Wert bei, bis Sie auf die Schaltfläche Zurücksetzen in der Symbolleiste klicken oder die Arbeitsmappe schließen.
Konstante Variable
Wie der Name schon sagt, kann der Wert dieser Variablen während der Ausführung des Programms nicht geändert werden. Sobald eine Konstante deklariert ist, kann sie nicht mehr geändert oder mit einem neuen Wert versehen werden.
Die Deklaration einer Konstante kann innerhalb einer Prozedur oder auf Modulebene (vor allem Prozeduren) erfolgen.
Option Explicit Sub constantVariable() Const SpeedLimitOfcar As String = '90kmph' Dim myCarSpeed As String myCarSpeed = '70kmph' If myCarSpeed > SpeedLimitOfcar Then MsgBox 'overspeed: Reduce the speed' Else MsgBox 'Within the limit: Always drive below : ' & SpeedLimitOfcar End If End Sub
Wenn Sie versuchen, den konstanten Wert zu ändern, wird ein Kompilierungsfehler ausgegeben.
Option Explicit Sub ChangeConstantVariable() Const SpeedLimitOfcar As Integer = 90 SpeedLimitOfcar = SpeedLimitOfcar + 10 MsgBox SpeedLimitOfcar End Sub
FAQs
F # 1) Wie setze ich eine öffentliche Variable in VBA?
Antworten: Öffentliche Variablen werden vor dem Start einer Prozedur deklariert. Das öffentliche Schlüsselwort muss beim Deklarieren einer Variablen verwendet werden.
Public Total_Marks As Integer
F # 2) Welche Art von Variablen kann außerhalb der Prozedur nicht deklariert werden?
Antworten: Statische Variablen können nicht außerhalb der Prozedur in VBA deklariert werden, und es wird ein Kompilierungsfehler angezeigt.
F # 3) Wie deklariere ich eine Variable in VBA?
Antworten: Das Schlüsselwort Dim wird verwendet, um eine Variable zu deklarieren. Dim steht für Dimension.
Variablenname als Datentyp dimmen
F # 4) Wie kann man einer Zelle in VBA einen variablen Wert zuweisen?
Antworten: Sie können die Range-Funktion verwenden.
var1 = 10
Bereich ('C1: C14'). Wert = var1
F # 5) Was sind Variablen in VBA?
Antworten: Variablen sind wie Platzhalter für die Werte im Computerspeicher. Variablen können verschiedene Arten von Werten enthalten und diese Werte können sich während der Ausführung des Codes ändern. Jede Variable sollte einen Namen haben. Unter Verwendung des Variablennamens ruft der Computer den für diese Variable zugewiesenen Wert ab.
F # 6) Müssen Sie eine Variable in VBA deklarieren?
Antworten: Die Deklaration ist in VBA optional. Wenn Sie eine Variable nicht deklarieren und direkt in der Prozedur verwenden, wird sie als implizite Deklaration bezeichnet. Um Fehler im Code zu vermeiden und die Lesbarkeit zu verbessern, wird empfohlen, eine Variable explizit zu deklarieren.
F # 7) Wie deklariere ich mehrere Variablen in VBA?
Antworten: Sie können mehrere Variablen in einer Deklarationsanweisung deklarieren. Sie müssen nur den durch Kommas getrennten Variablennamen in einer As-Klausel angeben.
Fragen zum Vorstellungsgespräch für Business Analyst Insurance Domain
Dim FirstNo, SecondNo As Integer
Sie können auch verschiedene Variablen in einer Deklarationsanweisung angeben. Jede Variable nimmt den in der As-Klausel angegebenen Datentyp nach ihrem Variablennamen-Teil an.
Dim a, b als Single, c, d als Double, e als Integer, f als String
F # 8) Wann würde es in VBA keinen Unterschied zwischen dim und private geben?
Antworten: Wenn Sie einen Bereich auf privater Modulebene deklarieren, gibt es keinen Unterschied zwischen der Deklaration einer Variablen als dim oder privat. Standardmäßig werden Variablen mit dem deklariert Keiner sind als privat eingestuft. Es wird jedoch empfohlen, privat hinzuzufügen, um die Lesbarkeit zu verbessern.
F # 9) Was ist eine Variable auf Modulebene?
Antworten: Variablen auf Modulebene können privat oder öffentlich sein. Private Variablen sind für alle Prozeduren in diesem Modul verfügbar und für kein anderes Modul sichtbar. Öffentliche Variablen sind für alle Prozeduren in allen Modulen eines Projekts sichtbar.
Fazit
Eine Variable ist in jeder Programmiersprache von entscheidender Bedeutung. In diesem Tutorial haben wir gesehen, was Variablen sind, wie sie deklariert und im Programm verwendet werden. Wir haben auch die Option Explicit-Methode untersucht, die die Implementierung der expliziten Deklaration erzwingt.
Es wurden verschiedene Arten von Variablenbereichen erörtert, anhand derer die Benutzer bestimmen können, welche Teile des Codes die Variable verwenden kann. Wir haben die Verwendung von statischen Variablen gelernt, die dazu beitragen, den Wert der Variablen beizubehalten, und von konstanten Variablen, die dazu beitragen, den Wert der Variablen unverändert zu lassen.
=> Besuchen Sie hier, um VBA von Grund auf neu zu lernen
Literatur-Empfehlungen
- Excel VBA Tutorial - Einführung in VBA in Excel
- Excel VBA-Array und Array-Methoden mit Beispielen
- VBA-Datentypen - Numerische und nicht numerische Datentypen in VBA
- Python-Variablen
- Variablen in C ++
- Java-Variablen und ihre Typen mit Beispielen
- C # -Datentypen und -Variablen mit Beispielen
- VBScript-Variablen: Deklarieren und Verwenden von Variablen - VBScript Dim