Ebenso wie bei Variablen, kann man auch
bei Prozeduren deren Sichtbarkeit festlegen. Wenn VBA-Projekte umfangreicher werden,
verwendet man in der Regel auch mehrere Module. Meistens soll dann nur eine einzige
oder nur sehr wenige Prozeduren eines Moduls von außen aufgerufen werden. Die übrigen
Prozeduren des Moduls sind diesen Prozeduren untergeordnet, d. h; sie werden
nur von diesen genutzt. Daher ist es sinnvoll und guter Programmierstil, dafür zu
sorgen, dass solche untergeordneten Prozeduren auch nur innerhalb des Moduls sichtbar
sind. Wie bei Variablen, erfolgt das auch bei Prozeduren mit
Private
bzw. Public
.
Modul1 (Code) | Modul2 (Code) |
---|---|
Option Explicit |
Option Explicit |
In diesem Beispiel befinden sich im Modul1 zwei Prozeduren: Datenverwaltung
wurde als Public
definiert, Loesche
dagegen als Private
. Datenverwaltung
kann also Loesche
aufrufen, weil sich beide Prozeduren im gleichen Modul
befinden. Anders verhält es sich bei den Prozeduren in Modul2: Aufruf1
ruft Datenverwaltung
problemlos auf, aber wenn Aufruf2
gestartet wird, kommt es zu einer Fehlermeldung, weil aus Modul2 heraus
Loesche
nicht gefunden werden kann.
Gibt man weder Public
noch
Private
an, ist Public
der Standardwert. Aber auch hier gilt, wie immer: Man sollte sich nicht auf
Standardwerte verlassen, sondern explizit angeben, was man will.