Kontakt

Nutzen Sie dieses Kontaktformular oder schreiben Sie mir direkt per E-Mail.

Option Explicit – Excel VBA kompakt erklärt

Kurze Erläuterung

Wenn Sie die Anweisung Option Explicit am Beginn des Moduls setzen, müssen Sie Ihre Variablen mit den Anweisungen Dim oder Redim erzeugen. Anschließend können Sie mit dem Schlüsselwort As einen Datentypen angeben.

Option Explicit

Sub Ihre_Prozedur()
  Dim Variablenname As Datentyp
  ...
End Sub

Ausführliche Erklärungen

Variablen erzeugen mit und ohne Option Explicit

Das folgende Beispiel zeigt, wie Sie Variablen erzeugen, wenn Option Explicit aktiviert ist:

Option Explicit Sub Meine_Prozedur() Dim Meine_Zahl As Byte Meine_Zahl = 10 End Sub

Hinweis: Wenn Sie die Typzuweisung mit As in diesem Beispiel weglassen, wählt Excel selbst den Datentypen.

Nun der gleiche Code, wenn Option Explicit nicht aktiviert ist:

Sub Meine_Prozedur()
  Meine_Zahl = 10
End Sub

Auch hier gilt, dass Excel den Datentypen der Variable selbst wählt.

Tipp: Ich empfehle Ihnen, Option Explicit in jedem Modul zu aktivieren! Warum Sie sich aber dieses Mehr an Schreibaufwand machen sollten, lesen Sie im nächsten Abschnitt!

Warum Option Explicit für Sie sinnvoll ist

Ressourcen schonen

Zum einen bringt Ihnen Option Explicit mehr Kontrolle über Ihr Programm. Mit dem sinnvollen Einsatz von Datentypen können Sie wertvolle Ressourcen sparen. Achten Sie einfach immer darauf, den Variablen einen Datentypen zuzuweisen, der nicht größer ist als notwendig.

Wenn Sie beispielsweise für Ihre Variable Zahlen von 1 bis 10 erwarten, dann reicht der Datentyp Byte vollkommen aus. Integer wäre dagegen überdimensioniert und würde Ihren Arbeitsspeicher unnötig belasten.

Hinweis: Wenn Sie Excel die Wahl des Datentyps überlassen, können Sie nicht sicher sein, dass immer der optimale Datentyp gewählt wird.

Fehler vermeiden

Zum anderen, und noch viel wichtiger, ist die Vermeidung von Fehlern. Das folgende Beispiel geht davon aus, dass Option Explicit nicht gesetzt ist:

Sub Meine_Prozedur()
  Meine_Zahl = 10
  
  MsgBox MeineZahl
End Sub

Das Meldungsfenster, welches die Anweisung MsgBox erzeugt, ist leer!

Meldungsfenster in Excel, das keinen Inhalt hat.
Meldungsfenster ohne Inhalt

Haben Sie den Grund dafür erkannt? Genau! In der Anweisung MsgBox MeineZahl ist mir ein Fehler unterlaufen. Ich habe den Bindestrich vergessen. Dadurch habe ich jedoch eine neue Variable erzeugt, die natürlich keinen Wert enthält. Daher zeigt das Meldungsfenster auch nichts an!

Schauen wir uns an, was der gleiche Code mit Option Explicit getan hätte:

Option Explicit

Sub Meine_Prozedur()
  Dim Meine_Zahl As Byte
  
  Meine_Zahl = 10
  
  MsgBox MeineZahl
End Sub

Excel bricht die Ausführung der Prozedur ab und gibt folgende Fehlermeldung aus:

Excel VBA Fehlermeldung mit dem Inhalt "Variable nicht definiert".
Fehlermeldung Variable nicht definiert

Außerdem markiert das Programm die fehlerhafte Variable:

Excel VBA-Code, der eine Prozedur mit einer vom Programm blau markierten falsch geschriebenen Variable zeigt.
Abgebrochene Prozedur

Sie sehen, die Verwendung von Option Explicit schützt Sie bei ärgerlichen Tippfehlern und hilft Ihnen zudem, mit Ihren Ressourcen besser haus zu halten.

Damit Sie Option Explicit nicht per Hand in jedes neue Modul schreiben müssen, schauen Sie sich noch den nächsten Hinweis an!

Option Explicit aktivieren

Sie können die Anweisung natürlich einfach selbst oben in Ihr Modul schreiben. Wichtig ist, dass der Text über der ersten Prozedur bzw. Funktion steht.

Besser ist jedoch, Sie setzen den richtigen Haken in den Optionen des VBA-Editors. Die Anweisung wird dann automatisch in jedem neuen Modul notiert. Sie müssen sich dann nicht mehr darum kümmern.

So gehen Sie vor: Menü Extras >> Optionen >> Reiter Editor >> Variablendeklaration erforderlich (Haken setzen)

Dialog "Optionen" des Excel-VBA-Editors mit einem Pfeil, der auf die Option "Variablendeklaration erforderlich" zeigt.
Variablendeklaration erforderlich anhaken

Jan Trummel am Flipchart und erklärt zwei Seminarteilnehmern etwas in Excel.
Jan Trummel im Seminar

Jetzt VBA lernen ohne Programmierkenntnisse!

Sie wollen die VBA-Programmierung in Excel lernen und sicher beherrschen? Dann empfehle ich Ihnen mein Seminar Excel VBA-Programmierung – Grundkurs. Der Einstieg in VBA mit Excel ist ohne Vorkenntnisse in Programmiersprachen möglich!