ich möchte ausserhalb einer Prozedur eine globale Variable anlegen und ihr einen String zuweisen.
Wie geht das?
Option Explicit
'Allgemeines Modul
Global myString As String
Sub StringFuellen()
'Das Makro z.B. beim öffnen der Mappe aufrufen
myString = "Hallo Welt"
End Sub
Um in Excel VBA eine globale Variable zu definieren und ihr einen Wert zuzuweisen, kannst Du folgende Schritte befolgen:
Option Explicit
Global myString As StringSub InitializeVariable()
myString = "Hallo Welt"
End SubInitializeVariable auf, um den Wert zu setzen.Wenn Du die Variable in einer anderen Sub verwenden möchtest, kannst Du dies einfach tun, da sie global definiert ist.
Fehler: "Variable nicht definiert"
Option Explicit am Anfang Deines Moduls verwendet hast. Das zwingt Dich, alle Variablen zu deklarieren.Fehler: "Zuweisung außerhalb einer Prozedur nicht erlaubt"
Eine alternative Möglichkeit, einen festen Wert zuzuweisen, besteht darin, eine öffentliche Konstante zu verwenden. Du kannst dies so tun:
Public Const MyName As String = "Hallo"
Diese Methode ist nützlich, wenn Du einen festen Wert benötigst, der sich während der Ausführung Deines Makros nicht ändern soll.
Hier ist ein einfaches Beispiel, das zeigt, wie Du eine globale Variable in verschiedenen Subs verwenden kannst:
Option Explicit
Global myString As String
Sub SetValue()
myString = "Hallo Welt"
End Sub
Sub DisplayValue()
MsgBox myString
End Sub
Rufe zuerst SetValue auf und dann DisplayValue, um den Wert in einer MessageBox anzuzeigen.
Public anstelle von Global, wenn Du eine Variable in mehreren Modulen verwenden möchtest.Option Explicit, um die Deklaration aller Variablen zu erzwingen und so Tippfehler zu vermeiden.1. Wie kann ich eine globale Variable in mehreren Modulen verwenden?
Du kannst die Variable mit dem Schlüsselwort Public im Hauptmodul definieren. Dann ist sie in allen Modulen verfügbar.
2. Kann ich einer globalen Variable einen Wert in einer Funktion zuweisen?
Ja, Du kannst einer globalen Variable in einer Funktion einen Wert zuweisen, solange sie innerhalb einer Sub oder Function deklariert wird.