Verständnis von Variablen und Konstanten in Excel-Makros

In diesem Artikel erfahren Sie, was Konstanten und Variablen in Makros sind, wo sie verwendet werden können und was der Hauptunterschied zwischen verschiedenen Datentypen ist. Es wird auch gezeigt, warum Konstanten benötigt werden, wenn Sie eine Variable einfach schreiben und nie ändern können.

Wie andere Programmiersprachen können Daten in Variablen oder Konstanten gespeichert werden (beide werden oft auch als Datencontainer bezeichnet). Dies ist der Hauptunterschied zwischen diesen Konzepten. Ersteres kann sich ändern, je nachdem, was im Programm passiert. Konstanten wiederum werden einmalig gesetzt und ändern ihren Wert nicht.

Konstanten können nützlich sein, wenn Sie denselben großen Wert mehrmals verwenden müssen. Anstatt die Zahl zu kopieren, können Sie einfach den Namen der Konstante schreiben. Beispielsweise können Sie die Konstante „Pi“ verwenden, um Pi zu speichern, was ein konstanter Wert ist. Es ist sehr umfangreich, und jedes Mal ist es ziemlich schwierig, es zu schreiben oder zu suchen und zu kopieren. Es reicht also aus, zwei Zeichen zu schreiben, und die Umgebung verwendet automatisch die gewünschte Zahl.

Der Excel-Benutzer muss Variablen deklarieren, wenn er den darin gespeicherten Wert von Zeit zu Zeit ändern muss. Sie können beispielsweise eine Variable namens sVAT_Rate festlegen, die den aktuellen Mehrwertsteuersatz für das Produkt speichert. Wenn es sich ändert, können Sie es schnell korrigieren. Dies ist besonders nützlich für diejenigen, die in den Vereinigten Staaten Geschäfte tätigen, wo einige Waren möglicherweise überhaupt nicht der Mehrwertsteuer unterliegen (und diese Steuer auch von Staat zu Staat unterschiedlich ist).

Datentypen

Jeder Datencontainer kann einer von mehreren Typen sein. Hier ist eine Tabelle, die die Standardtypen verarbeiteter Informationen beschreibt. Es gibt viele von ihnen, und einem Anfänger mag es zunächst so vorkommen, als würden sie sich wiederholen. Aber das ist ein trügerisches Gefühl. Lesen Sie weiter, um zu erfahren, warum die Angabe des richtigen Datentyps so wichtig ist.

Es wird nicht empfohlen, einen Datentyp zu verwenden, der für kleine Zahlen mehr Speicherplatz beansprucht. Für die Zahl 1 reicht es beispielsweise aus, den Typ Byte zu verwenden. Dies wirkt sich insbesondere auf schwachen Rechnern positiv auf die Performance des ausführbaren Moduls aus. Aber es ist wichtig, hier nicht zu weit zu gehen. Wenn Sie einen zu kompakten Datentyp verwenden, passt ein zu großer Wert möglicherweise nicht hinein.

Konstanten und Variablen deklarieren

Es wird dringend davon abgeraten, einen Datencontainer zu verwenden, ohne ihn vorher zu deklarieren. Dann können eine Reihe von Problemen auftreten, zu deren Vermeidung es notwendig ist, ein paar kleine Codezeilen mit Aufzählung von Variablen oder Konstanten zu schreiben.

Um eine Variable zu deklarieren, wird die Dim-Anweisung verwendet. Zum Beispiel so:

Dim Variable_Name als ganze Zahl

Variable_Name ist der Name der Variablen. Als nächstes wird der As-Operator geschrieben, der den Datentyp angibt. Anstelle der Strings „Variable_Name“ und „Integer“ können Sie Ihren eigenen Namen und Datentyp einfügen.

Konstanten können auch deklariert werden, aber Sie müssen zuerst ihren Wert angeben. Eine der Optionen ist:

Konst. iMaxCount = 5000

Fairerweise kann man in einigen Fällen auf die Deklaration einer Variablen verzichten, aber in diesem Fall wird ihnen automatisch der Typ Variant zugewiesen. Dies wird jedoch aus folgenden Gründen nicht empfohlen:

  1. Variante wird viel langsamer verarbeitet, und wenn es viele solcher Variablen gibt, kann die Informationsverarbeitung auf schwachen Computern erheblich verlangsamt werden. Es scheint, dass diese Sekunden entscheiden werden? Aber wenn Sie eine große Anzahl von Codezeilen schreiben müssen und ihn dann auch auf schwachen Computern ausführen müssen (die immer noch verkauft werden, da moderne Office-Suiten viel RAM benötigen), können Sie die Arbeit vollständig einstellen. Es gibt Fälle, in denen schlecht durchdachtes Schreiben von Makros zum Einfrieren von Smartbooks führte, die über wenig RAM verfügen und nicht für die Ausführung komplexer Aufgaben ausgelegt sind. 
  2. Druckfehler in Namen sind erlaubt, was verhindert werden kann, indem Sie die Option Explicit-Anweisung verwenden, die es Ihnen ermöglicht, eine nicht deklarierte Variable zu finden, falls eine gefunden wird. Dies ist eine einfache Möglichkeit, Fehler zu erkennen, da der Interpreter beim kleinsten Tippfehler die Variable nicht identifizieren kann. Und wenn Sie den Variablendeklarationsmodus einschalten, erlaubt Ihnen der Interpreter einfach nicht, das Makro auszuführen, wenn Datencontainer gefunden werden, die nicht ganz am Anfang des Moduls deklariert wurden.
  3. Vermeiden Sie Fehler, die durch Variablenwerte verursacht werden, die nicht zum Datentyp passen. Normalerweise wird beim Zuweisen eines Textwerts zu einer Integer-Variablen ein Fehler ausgegeben. Ja, einerseits wird ein generischer Typ ohne Deklaration zugewiesen, aber wenn sie vorher deklariert werden, dann können zufällige Fehler vermieden werden.

Daher ist es trotz allem dringend zu empfehlen, alle Variablen in Excel-Makros zu deklarieren.

Beim Deklarieren von Variablen ist noch etwas zu beachten. Es ist möglich, einer Variablen beim Deklarieren keine Werte zuzuweisen, aber in diesem Fall erhält sie einen Standardwert. Zum Beispiel:

  1. Zeilen werden leer gemacht.
  2. Die Zahlen nehmen den Wert 0 an.
  3. Variablen vom Typ Boolean werden zunächst als falsch betrachtet.
  4. Das Standarddatum ist der 30. Dezember 1899.

Beispielsweise müssen Sie einer Integer-Variablen nicht den Wert 0 zuweisen, wenn zuvor kein Wert angegeben wurde. Sie enthält diese Nummer bereits.

Option Explizite Anweisung

Mit dieser Anweisung können Sie alle Variablen deklarieren, die im VBA-Code verwendet werden, und das Vorhandensein nicht deklarierter Container ermitteln, bevor der Code ausgeführt wird. Um diese Funktion zu verwenden, schreiben Sie einfach eine Zeile Option Explicit-Code ganz oben in den Makrocode.

Wenn Sie diese Anweisung jedes Mal in Ihren Code einfügen müssen, können Sie dies mit einer speziellen Einstellung im VBA-Editor tun. Um diese Option zu aktivieren, müssen Sie:

  1. Gehen Sie zur Entwicklungsumgebung über den Pfad – Extras > Optionen.
  2. Öffnen Sie in dem sich daraufhin öffnenden Fenster die Registerkarte Editor.
  3. Aktivieren Sie schließlich das Kontrollkästchen neben dem Element Variablendeklaration erforderlich.

Klicken Sie nach Abschluss dieser Schritte auf die Schaltfläche „OK“. 

Das war's, jetzt wird beim Schreiben jedes neuen Makros diese Zeile automatisch am Anfang des Codes eingefügt.

Gültigkeitsbereich von Konstanten und Variablen

Jede Variable oder Konstante hat nur einen begrenzten Geltungsbereich. Es kommt darauf an, wo Sie es deklarieren.

Angenommen, wir haben eine Funktion Gesamtkosten(), und es verwendet die Variable sVAT_Satz. Je nach Position im Modul hat es einen anderen Umfang:

Option Explizit

Dimmen Sie sVAT_Rate als Single

Funktion Total_Cost() als Double

.

.

.

End Function

Wenn eine Variable am Anfang eines Moduls selbst deklariert wird, wird sie in diesem Modul weitergegeben. Das heißt, es kann von jeder Prozedur gelesen werden.

Wenn außerdem eine der Prozeduren den Wert der Variablen geändert hat, liest die nächste auch diesen korrigierten Wert. Aber in anderen Modulen wird diese Variable immer noch nicht gelesen.

Option Explizit

Funktion Total_Cost() als Double

Dimmen Sie sVAT_Rate als Single

   .

   .

   .

End Function

In diesem Fall wird die Variable innerhalb der Prozedur deklariert und der Interpreter gibt einen Fehler aus, wenn sie in einer anderen Prozedur verwendet wird.

Wenn Sie möchten, dass die Variable von anderen Modulen gelesen wird, müssen Sie das Schlüsselwort Public anstelle des Schlüsselworts Dim verwenden. Auf ähnliche Weise können Sie den Gültigkeitsbereich einer Variablen auf das aktuelle Modul beschränken, indem Sie die Public-Anweisung verwenden, die anstelle des Wortes Dim geschrieben wird.

Sie können den Gültigkeitsbereich von Konstanten auf ähnliche Weise festlegen, aber das Schlüsselwort hier wird zusammen mit dem Const-Operator geschrieben.

Hier ist eine Tabelle mit einem guten Beispiel dafür, wie es mit Konstanten und Variablen funktioniert.

Option Explizit

Öffentliche sVAT_Rate als Einzelperson

Öffentliche Konstante iMax_Count = 5000

In diesem Beispiel können Sie sehen, wie das Schlüsselwort Public zum Deklarieren einer Variablen verwendet wird und was Sie im Visual Basic-Editor schreiben müssen, um eine öffentliche Konstante zu deklarieren. Der Geltungsbereich dieser Wertcontainer gilt für alle Module.
Option Explizit

Privat sVAT_Rate As Single

Private Konstante iMax_Count = 5000

Hier werden Variablen und Konstanten mit dem Schlüsselwort Private deklariert. Das bedeutet, dass sie nur innerhalb des aktuellen Moduls sichtbar sind und Prozeduren in anderen Modulen sie nicht verwenden können.

Warum Konstanten und Variablen benötigt werden

Durch die Verwendung von Konstanten und Variablen können Sie die Verständlichkeit des Codes erhöhen. Und wenn Anfänger im Allgemeinen keine Fragen dazu haben, warum Variablen benötigt werden, gibt es viele Unklarheiten bezüglich der Notwendigkeit von Konstanten. Und diese Frage scheint auf den ersten Blick ganz logisch. Schließlich können Sie eine Variable einmal deklarieren und nie wieder ändern.

Die Antwort liegt irgendwo auf der gleichen Ebene wie in Bezug auf die Verwendung von Datentypen, die einen großen Speicherplatz belegen. Wenn wir es mit einer großen Anzahl von Variablen zu tun haben, können wir versehentlich einen vorhandenen Container ändern. Wenn der Benutzer vorschreibt, dass sich ein bestimmter Wert nie ändern wird, dann steuert die Umgebung dies automatisch.

Dies ist besonders wichtig, wenn das Makro von mehreren Programmierern geschrieben wird. Man weiß vielleicht, dass sich einige Variablen nicht ändern sollten. Und der andere nicht. Wenn Sie den Const-Operator angeben, weiß ein anderer Entwickler, dass sich dieser Wert nicht ändert.

Oder wenn es eine Konstante mit einem Namen gibt und die Variable einen anderen, aber ähnlichen Namen hat. Der Entwickler kann sie einfach verwirren. Beispielsweise heißt eine Variable, die nicht geändert werden muss, Variable11, und eine andere, die bearbeitet werden kann, heißt Variable1. Eine Person kann beim Schreiben von Code automatisch versehentlich eine zusätzliche Einheit überspringen und es nicht bemerken. Dadurch wird der Container für Werte verändert, die nicht angerührt werden sollten.

Oder der Entwickler selbst vergisst, welche Variablen er berühren kann und welche nicht. Dies geschieht häufig, wenn der Code mehrere Wochen lang geschrieben wird und seine Größe groß wird. In dieser Zeit vergisst man sehr leicht, was diese oder jene Variable bedeutet.

Ja, Sie können in dieser Situation Kommentare gebrauchen, aber ist es nicht einfacher, das Wort Const anzugeben?

Schlussfolgerungen

Variablen sind ein wesentlicher Bestandteil der Makroprogrammierung, mit denen Sie komplexe Operationen ausführen können, von Berechnungen über die Information des Benutzers über bestimmte Ereignisse bis hin zur Angabe bestimmter Werte in den Zellen einer Tabellenkalkulation.

Konstanten sollten verwendet werden, wenn der Entwickler sicher weiß, dass sich der Inhalt dieser Container in Zukunft nicht ändern wird. Es wird empfohlen, stattdessen keine Variablen zu verwenden, da es möglich ist, versehentlich einen Fehler zu machen.

Hinterlassen Sie uns einen Kommentar