Öffentliche VBA-Variablen

Öffentliche Variablen in VBA

"Öffentliche Variablen" in VBA sind, wie der Name schon sagt, Variablen, die für alle Makros, die wir im selben Modul sowie in verschiedenen Modulen schreiben, öffentlich verwendet werden sollen. Wenn die Variablen zu Beginn eines Makros deklariert werden, werden sie als "Öffentliche Variablen" oder "Globale Variablen" bezeichnet.

Wie deklariere ich öffentliche Variablen in VBA?

Normalerweise starten wir die VBA-Unterprozedur und deklarieren innerhalb der Unterprozedur unsere Variablen. Dies ist die übliche Praxis, die wir alle bis zu diesem Artikel gemacht haben.

Sie können diese Excel-Vorlage für öffentliche VBA-Variablen hier herunterladen - Excel-Vorlage für öffentliche VBA-Variablen

Jedes Mal, wenn wir eine neue Unterprozedur schreiben, deklarieren wir neue Variablen mit ihnen zugewiesenen Datentypen. Aber heute werden wir uns von sich wiederholenden Variablen über Unterprozeduren hinweg verabschieden.

Erinnern wir uns an den alten Stil. Unten ist der Code, den ich mit einer einzelnen Variablen geschrieben habe.

In der Unterprozedur "Public_Variable" habe ich diese Variable deklariert. Jetzt kann ich keines der anderen Module verwenden.

Jetzt können wir in der Unterprozedur "Public_Variable1" nicht die Variable "Var1" verwenden, die in der ersten Unterprozedur "Public_Variable" deklariert wurde. Dies ist die Einschränkung der Deklaration von Variablen innerhalb der Unterprozeduren.

# 1 - Variablen auf Modulebene

Wie wir alle wissen, schreiben wir Makros in Module, wir können eine Reihe von Modulen einfügen. Wir können in VBA zwei Arten von „öffentlichen Variablen“ deklarieren: Zum einen die Variablen für alle Unterprozeduren im selben Modul und zum anderen die Variablen für alle Unterprozeduren in allen Modulen.

Zunächst werden wir sehen, wie öffentliche Variablen in VBA auf Modulebene deklariert werden.

Um die Variablen für alle Unterprozeduren im selben Modul zu verwenden, müssen wir die Variablen oben im Modul deklarieren, bevor wir Makros starten.

Unten finden Sie einen Beispiel-Screenshot zum besseren Verständnis.

Wie wir im obigen Bild sehen können, habe ich zwei Variablen deklariert, bevor ich ein Makro im Modul starte. Diese beiden Variablen können nun in einer beliebigen Anzahl von Makros in diesem Modul verwendet werden.

In der Unterprozedur wird der Variablenname eingegeben. In der IntelliSense-Liste werden Variablennamen angezeigt.

Jetzt können wir diese Variablen in allen Makros verwenden, die wir in „Modul1“ schreiben.

Diese Variablen dürfen nur in diesem Modul verwendet werden. Zum Beispiel werde ich jetzt ein weiteres Modul einfügen und ein neues Makro schreiben.

In Modul 2 kann ich die in „Modul 1“ deklarierten Variablen nicht verwenden.

Wie können wir diese Variablen in VBA öffentlich machen, damit sie in allen Modulen und in allen Unterprozeduren verwendet werden können?

# 2 - Variablen deklarieren verwenden sie öffentlich

Kehren Sie in diesem Modul zu „Modul1“ zurück. Wir haben Variablen deklariert, bevor wir mit dem Schreiben des Makros beginnen und auch, in welcher Welt wir diese Variablen deklariert haben.

Unsere traditionelle Art, das Wort „DIM“ zu verwenden, haben wir diese Variablen deklariert.

Wenn wir nur das Wort "DIM" verwenden, ist es nur auf die Verwendung in allen Makros beschränkt, jedoch im selben Modul.

Anstelle des Wortes "DIM" müssen wir das Wort "PUBLIC" oder "GLOBAL" verwenden, um sie für alle Makromodule verfügbar zu machen.

Ich habe das Wort "Global" verwendet, um die Variablendeklaration öffentlich zu machen. Sie können auch das Wort "Öffentlich" verwenden.

Mit den Wörtern "Global" und "Public" können wir also Variablen deklarieren, die für alle Makros in verschiedenen Modulen verwendet werden können.

Dinge, an die man sich erinnern sollte

  • Es ist eine gute Praxis, Variablen öffentlich zu deklarieren, benötigt jedoch ausreichend Erfahrung, bevor sie deklariert werden.
  • Sobald die Makros gestartet werden, wird der Wert der Variablen für das Makro gleich sein.
  • Weisen Sie der Variablen innerhalb des jeweiligen Makros nur den bestimmten Wert zu, um Verwirrung zu vermeiden.