Eine Variable in Starbasic hat eine bestimmte Gültigkeit. Es gibt globale, öffentliche 
(public), 
private und "normale" Variablen. Durch diese Unterscheidung wird die Gültigkeit der Variablen 
für den Interpreter festgelegt.
Erst mal eine Kurzfassung:
Globale Variablen: Sie gelten innerhalb der gesamten Statoffice-Sitzung in allen geladenen 
Bibliothken, Modulen, Prozeduren und Funktionen.
Public Variablen: Sie gelten innerhalb aller Module einer Bibliothek
Private Variablen: Sie gelten nur innerhalb eines Moduls. Diese Variablennamen können 
daher 
auch in mehreren Modulen parellel verwendet werden.
Locale Variablen: Sie gelten nur innerhalb einer Funktion oder Procedure
Jetzt die lange Fassung:
Lokale Variablen werden innerhalb einer Prozedur oder Funktiondeklariert und wird 
nur 
innerhalb dieser auch verwendet. 
Sub MyProzedur
  Dim MyVariable as Integer
end Sub
Lokale Variablen haben nur Gültigkeit solange der Interpreter innerhalb der Prozedur 
oder der 
Funktion ist. Sobald diese verlassen worden ist stehen die zugewiesen Werte und die Variable 
nicht mehr zur Verfügung. Auch bei einem neuen Aufruf der Prozedur oder Funktion sind die 
Variablen nicht mehr belegt. Hierfür gibt es die Ausnahme wenn die Variable als Static 
deklariert. 
Sub MyProzedur
Static MyVariable as Integer
end Sub
Eine als Static deklarierte Variable behält ihren Wert bis zum nächsten Aufruf der 
Prozedur 
bei. 
Öffentliche Variablen werden im Kopfbereich eines Moduls deklariert und gelten dann 
innerhalb 
aller Prozeduren und Funktionen dieses Moduls.
Alternativ zu dem Befehl "Dim" kann hierfür auch der Befehl "Public" 
verwendet werden. 
Wichtig ist aber die Deklaration im Kopfbereich.
Dim MyVariable as Integer
Sub MyProzedur
MyVariable = 1
end Sub
Diese öffentlichen Variablen haben solange Gültigkeit wie das Modul ausgeführt wird. 
Hier 
unterscheidet sich die öffentliche Variable von der globalen Variablen.
Globale Variablen werden ebenfalls im Kopfbereich eines Moduls deklariert, sie haben 
auch 
nach beenden des Moduls Gültigkeit.
Erzeugt werden globale Variablen mit dem Befehl "Global"
Global MyVariable as Integer
Zu guter Letzt kommen noch die privaten Variablen .
Private MyVariable as Integer
erzeugt eine private Variable. Diese hat nur innerhalb des Moduls Gültigkeit. Wenn 
in einem 
zweites Modul ebenfalls eine Variable mit gleichem Namen als privat deklariert wird, erzeugt 
der Interpretor beim Ausführen auch eine zweite Variable. Private Variablen sollte man 
einsetzen wenn man Werte wirklich nur innerhalb des Moduls verwenden will und in seinem 
Code nicht mit öffentlichen  Variablen durcheinander kommen will.