Freigeben über


Deklarieren von Variablen

Beim Deklarieren von Variablen verwenden Sie normalerweise eine Dim-Anweisung. Deklarationsanweisungen können innerhalb einer Prozedur zum Erstellen einer Variablen auf Prozedurebene platziert werden. Zudem können sie auch über einem Modul im Deklarationsbereich platziert werden, um eine Variable auf Modulebene zu erstellen.

Im folgenden Beispiel wird die Variable erstellt und der String-Datentyp angegeben.

Dim strName As String 

Wenn diese Anweisung in einer Prozedur angezeigt wird, kann die Variable strName nur in dieser Prozedur verwendet werden. Wenn die Anweisung im Deklarationsbereich des Moduls angezeigt wird, ist die Variable strName für alle Prozeduren innerhalb des Moduls verfügbar, jedoch nicht für Prozeduren in anderen Modulen im Projekt.

Damit diese Variable für alle Prozeduren im Projekt verfügbar ist, fahren Sie mit der Public-Anweisung wie im folgenden Beispiel beschrieben fort:

Public strName As String 

Weitere Informationen zur Benennung von Variablen finden Sie unter Namenskonventionen in Visual Basic.

Variablen können als einer der folgenden Datentypen deklariert werden: Boolean, Byte, Integer, Long, Currency, Single, Double, Date, String (für Zeichenfolgen mit variabler Länge), String * length (für Zeichenfolgen mit fester Länge), Object oder Variant. Wenn Sie keinen Datentyp festlegen, wird standardmäßig der Datentyp Variant zugewiesen. Sie können auch einen benutzerdefinierten Typ mithilfe der Type-Anweisung erstellen.

Sie können in einer Anweisung mehrere Variablen deklarieren. Wenn Sie einen Datentyp angeben möchten, müssen Sie den Datentyp für die einzelnen Variablen einfügen.

In der folgenden Anweisung werden die Variablen intX, intY und intZ als Typ Integer deklariert.

Dim intX As Integer, intY As Integer, intZ As Integer 

In der folgenden Anweisung werden intX und intY als Typ Variant deklariert, und nur intZ wird als Typ Integer deklariert.

Dim intX, intY, intZ As Integer 

Sie müssen nicht den Datentyp der Variable in der Deklarationsanweisung angeben. Wenn Sie den Datentyp nicht angeben, ist die Variable vom Typ Variant.

Sie können auch ein Bezeichnertypzeichen verwenden, um den Datentyp anzugeben. In der folgenden Anweisung x wird als Long deklariert, und y und z werden als Ganze Zahlen deklariert:

Dim intX&, intY%, intZ as Integer

Public-Anweisung

Verwenden Sie die Public-Anweisung, um öffentliche Variablen auf Modulebene zu deklarieren.

Public strName As String 

Öffentliche Variablen können in allen Prozeduren des Projekts verwendet werden. Wenn eine öffentliche Variable in einem Standardmodul oder einem Klassenmodul deklariert wird, kann sie auch in allen Projekten verwendet werden, die auf das Projekt verweisen, in dem die öffentliche Variable deklariert wurde.

Private-Anweisung

Verwenden Sie die Private-Anweisung, um private Variablen auf Modulebene zu deklarieren.

Private MyName As String 

Private Variablen können nur von Prozeduren des gleichen Moduls verwendet werden.

Hinweis

Wenn Sie die Dim-Anweisung auf Modulebene verwenden, entspricht sie der Private-Anweisung. Es ist möglicherweise ratsam, die Private-Anweisung zu verwenden, damit Ihr Code leichter zu lesen und zu interpretieren ist.

Static-Anweisung

Wenn Sie die Static-Anweisung anstelle einer Dim-Anweisung verwenden, um eine Variable in einer Prozedur zu deklarieren, behält die deklarierte Variable ihren Wert zwischen Aufrufen für diese Prozedur bei.

Option Explicit-Anweisung

Sie können eine Variable in Visual Basic implizit deklarieren, indem Sie sie in einer Zuweisungsanweisung verwenden. Alle Variablen, die implizit deklariert werden, sind vom Typ Variant. Variablen des Typs Variant erfordern mehr Speicherressourcen als die meisten anderen Variablen. Ihre Anwendung ist effizienter, wenn Sie Variablen explizit und mit einem bestimmten Datentyp deklarieren. Wenn Sie alle Variablen explizit deklarieren, reduziert dies das Auftreten von Namenskonfliktfehlern und Rechtschreibfehler.

Wenn Sie nicht möchten, dass Visual Basic implizite Deklarationen vornimmt, können Sie die Option Explicit-Anweisung vor Beginn einer Prozedur in einem Modul platzieren. Diese Anweisung erfordert, dass Sie alle Variablen innerhalb des Moduls explizit deklarieren. Wenn ein Modul die Option Explicit-Anweisung enthält, tritt ein compile-time-Fehler auf, wenn Visual Basic auf einen Variablennamen stößt, der nicht zuvor deklariert wurde oder der falsch geschrieben wurde.

Sie können eine Option in Ihrer Visual Basic-Programmierumgebung festlegen, durch die die Option Explicit-Anweisung in allen neuen Modulen automatisch hinzugefügt wird. Informationen zum Ändern der Visual Basic-Umgebungsoptionen finden Sie in der Dokumentation Ihrer Anwendung. Beachten Sie, dass diese Option keinen vorhandenen Code ändert, den Sie geschrieben haben.

Hinweis

Feste und dynamische Datenfelder müssen explizit deklariert werden.

Deklarieren einer Objektvariablen für die Automatisierung

Wenn Sie eine Anwendung verwenden, um Objekte einer anderen Anwendung zu steuern, sollten Sie einen Verweis auf die Typbibliothek der anderen Anwendung festlegen. Nachdem Sie einen Verweis festgelegt haben, können Sie Objektvariablen entsprechend ihrem spezifischsten Typ deklarieren. Wenn Sie beispielsweise in Microsoft Word einen Verweis auf die Microsoft Excel-Typbibliothek festlegen, können Sie eine Variable vom Typ Worksheet aus Word deklarieren, um ein Worksheet-Objekt von Excel darzustellen.

Wenn Sie eine andere Anwendung verwenden, um Microsoft Access-Objekte zu steuern, können Sie in den meisten Fällen Objektvariablen entsprechend ihrem spezifischsten Typ deklarieren. Sie können auch nur das Schlüsselwort Neu verwenden, um eine neue Instanz eines Objekts automatisch zu erstellen. Allerdings müssen Sie möglicherweise angeben, dass es sich um ein Microsoft Access-Objekt handelt. Beim Deklarieren einer Objektvariable zur Darstellung eines Access-Formulars in Visual Basic müssen Sie beispielsweise zwischen dem Form-Objekt von Access und einem Form-Objekt von Visual Basic unterscheiden. Fügen Sie den Name der Typbibliothek in die Variablendeklaration ein, wie im folgenden Beispiel gezeigt:

Dim frmOrders As New Access.Form 

Einige Programme erkennen einzelne Access-Objekttypen nicht. Auch wenn Sie einen Verweis auf die Typbibliothek von Access aus diesen Anwendungen festlegen, müssen Sie alle Access-Objektvariablen als Typ Object deklarieren. Sie können auch nicht das Schlüsselwort Neu verwenden, um eine neue Instanz des Objekts zu erstellen.

Das folgende Beispiel zeigt, wie Sie eine Variable zur Darstellung einer Instanz des Application-Objekts von Access aus einer Anwendung deklarieren, die Access-Objekttypen nicht erkennt. Die Anwendung erstellt dann eine Instanz des Application-Objekts.

Dim appAccess As Object 
Set appAccess = CreateObject("Access.Application")

Informationen dazu, welche Syntax von der Anwendung unterstützt wird, finden Sie in der Dokumentation zur Anwendung.

Siehe auch

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.