Einführung in Prozedurvariablen in VBA im Rahmen der Lehre der Programmierung mit der Programmiersprache VBA. (Prozedurvariablen in VBA), Lektion, Seite 720463
https://www.purl.org/stefan_ram/pub/vba_prozedurvariablen (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
VBA-Kurs

Lokale Variablen und die Zuweisung in VBA

In BASIC  ließen sich Werte schon immer an sogenannte „Variablen“ binden. Dies erinnert zunächst an Konstanten.

Zur Zuweisung eines Wertes an eine Variable wird die Let-Anweisung verwendet. Das Wort "Let" ist ein Schlüsselwort. Die Verwendung des Wortes "Let" am Anfang einer Anweisung folgt dem leicht verständlichen alten Schema, nach dem jede Anweisung in BASIC  mit einem Schlüsselwort beginnt, welches den Typ der Anweisung festlegt.

Direktbereich

Let a = 1

? a + a
2

Eine Variable ist aber nur auf den ersten Blick ein Name für einen Wert. Tatsächlich handelt es sich bei einer Variablen um einen Namen für einen Wertspeicher. Der Unterschied wird erkennbar, wenn die Zuweisung eines Wertes an eine Variable wiederholt wird.

Direktbereich

Let a = 2

? a + a
4

Es ist problemlos möglich, einer Variablen einen neuen Wert zuzuweisen, während eine Konstanten innerhalb ihres Gültigkeitsbereichs und ihrer Lebenszeit für einen bestimmten Wert steht.

Bei der Zuweisung eines neuen Wertes an eine Variable wird aber nicht etwa der Variablenname an einen neuen Wert gebunden. Der Variablenname ist vielmehr immer an denselben Speicherplatz gebunden. Durch die Zuweisung wird dann während der Ausführung einer Anweisung ein neuer Wert in diesen Speicherplatz der Variablen geschrieben.

Man hat zwischen Name und Wert sozusagen noch ein Umleitung gefügt: einen Speicher, der dann erst zur Laufzeit einen bestimmten Wert enthalten kann. Dieser Wert wird dann im Programm

Eine Variable  ist ein benannter Speicherplatz.

Eine Konstante  ist ein benannter Wert.

Bei der Zuweisung mit einer Variablen auf der linken Seite, wir der Wert der rechen Seite in die Variable geschrieben.

Bei der Verwendung einer Variablen oder Konstanten als Ausdruck wird der Wert dieses Ausdrucks durch Lesen  aus der Variablen ermittelt.

Variablen im Direktbereich

Für vorübergehend benötigte Rechnungen im Direktfenster erlaubt VBA  die Verwendung von Konstanten nicht. Daher muß  man hier Variablen verwenden, auch wenn Konstanten oft besser geeignet wären. Jedenfalls läßt sich das Direktfenster von VBA  so aber also komfortabler Taschenrechner verwenden.

Direktbereich

Let speicher = 2230272

Let speicher_in_kbyte = speicher / 1024

? speicher_in_kbyte
2178

Durch die Verwendung der Variablennamen wird es möglich, im Verlauf einer längeren Rechnung, die Ergebnisse einer früheren Berechnung wiederzuverwenden, wenn sie in einer Variablen gespeichert wurden.

Variablendeklarationen

Die gezeigte Verwendung von Variablen hat aber einen Mangel: Es ist nicht klar, Werte welchen  Typs eine Variable aufnehmen soll. Dadurch ist es dem Interpretierer nicht möglich, den Programmierer auf seinen Fehler hinzuweisen, wenn dieser einen Wert in einer Variablen speichern will und die Variable aber gar nicht für Werte dieses Typs gedacht ist. Auch ist die Verarbeitung von Variablen mit einem bestimmten Typ manchmal schneller möglich, als bei Variablen ohne weiter eingegrenzten Typ.

Durch eine Variablendefinition  wird einem Variablennamen ein Datentyp zugeordnet. Aus historischen Gründen wird eine Variablendefinition auch als „Dimensionierung“ bezeichnet und mit dem Schlüsselwort "Dim" eingeleitet.

Muster einer Variablendefinition
Dim 〈Variablenname 〉 As 〈Datentyp 
Beispiele von Variablendefinitionen

Dim Warenwert As Double

Dim Vorname As String

Die Deklaration einer Variablen ist allerdings nicht  im Direktbereich möglich. Sie muß immer in einem Modul enthalten sein.

Eine Variablendeklaration ist eine Anweisung.

Variablen werden häufig in einem Unterprogramm oder in einer Funktion definiert.

Modul1

Sub Main()

Dim I As Integer ' Anfang des Gültigkeitsbereichs (Scope) von I

Let I = 22

Debug.Print I

End Sub ' Ende des Gültigkeitsbereichs von I

Protokoll
 22 

Der Typ einer Variablen begrenzt ihren Wertebereich: Der Wert einer Variablen muß immer im Typ der Variablen enthalten sein.

Die Festlegung eines spezielleren Datentyps für eine Variable verbessert die Lesbarkeit eines Programms, da sie die Absicht des Programmierers erklärt. Sie hilft dabei, automatisch Fehler zu finden, wie sie etwa die Zuweisung von Werten eines Typs, der nicht zum Datentyp der Variablen paßt, darstellen würde. Außerdem sind Zugriffe auf Variablen mit einem speziellen Typ meistens schneller.

Es empfiehlt sich also, Variablen immer mit dem speziellsten in Frage kommenden Typ zu deklarieren.

Option Explicit

Das klassische BASIC  verlangt die Vereinbarung eines Variablentyps nicht. Daher gilt es nicht als Fehler, wenn eine Variable ohne vorherige Typvereinbarung einfach verwendet wird.

Modul1
Sub Main()
Let v = 1
Let v = 2
Debug.Print v
End Sub
Protokoll
 2 

Die meisten Programmierer bevorzugen es heute, Variablentypen zu vereinbaren und wünschen deshalb eine Fehlermeldung für den Fall, daß solch eine Vereinbarung fehlt. Der Vers »Option Explicit« am Anfang eines Moduls verlangt dies.

Modul1

Option Explicit

Sub Main()
Dim v As Integer
Let v = 1
Let v = 2
Debug.Print v
End Sub

Protokoll
 2 

Variablenfenster

Im Menü »Ansicht« kann der Eintrag »Lokalfenster« angewählt werden, um in einer Baumansicht die Variablen zu erforschen. Sie erscheinen dort während ihrer Lebensdauer. Daher sieht man sie in der Regel, wenn Unterprogramm im Einzelschrittmodus ausgeführt werden. In dem Fenster erscheint dann der Typ und der Wert der Variablen.

Anmerkungen

Zuweisungen ohne das Schlüsselwort "Let"

Let kann man auch weglassen.

Übungsaufgaben

Im folgenden ist mit „Anweisungsfolge“ eine Folge von beliebig vielen (0, 1, 2, usw.) Anweisungen gemeint.

/   Übungsaufgabe

Schreiben Sie eine Anweisungsfolge , die den Wert einer Integer-Variablen »x« um »7« erhöht.

/   Übungsaufgabe

Schreiben Sie eine Anweisungsfolge, die den Wert einer String-Variablen »s« mit dem Wert einer String-Variablen »t« vertauscht.

Mid$ *

Modul1

Sub Main()

Dim a$

Let a$ = "abc"

Mid$(a$, 1, 1) = "2" ' hier ist kein Let möglich

Debug.Print a$

End Sub

Protokoll
2bc

Man muß hierin wahrscheinlich eine eigene Form von Anweisung sehen, die „Mid-Anweisung“!

Geschwindigkeitsrat für fortgeschrittene Leser * Die Veränderung der Länge einer Zeichenfolgenvariablen kostet viel Zeit. Es kann schneller sein, darauf zu achten, daß eine Variable immer 1000 Zeichen enthält und dann die anzahl der davon zu verwendenden Zeichen in einer numerischen Variablen festzuhalten. Die Zuweisung an »Mid$« kann dann verwendet werden, um einzelne Zeichen in einem String zu verändern, ohne dessen Länge zu verändern.

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram720463 stefan_ram:720463 Prozedurvariablen in VBA source, source code,sourcecode, Programmier sprache VBA, VBA Programm VBA Sprache VBA Die Programmiersprache VBA Visual Basic for Applications, VisualBasic for Applications, Visual Basic for Aplications, VisualBasic for Aplications, VBA, V.B.A., V B A,, Einführung, Einfuehrung, Einführungen, Einfuehrungen, eLearning-Modul, e-Learning-Modul, eLearning-Module, e-Learning-Module, Kurs Berlin, Kurse Berlin, Kursus, Vortrag, Vorträge, Vortraege, Lehrgang, Lehrgänge, Lehrgaenge, kostenloses Lehrmaterial, kostenlose Lehrmaterialien, Vorlesung, Vorlesungen, Unterrichtseinheit, Unterrichtseinheiten, kostenloses Unterrichtsmaterial im Internet, kostenlose Unterrichtsmaterialien im Internet, Ausbildung, Ausbildungen, für die Ausbildung, Fortbildung, Fortbildungen, Weiterbildung, Weiterbildungen, Schulung Berlin, Schulungen Berlin, Internetschulung, Webschulung, Kursunterlage, Kursunterlagen, trainer Berlin, Didaktik, Informatikunterricht, Primer, Skript FH, Skripte FH, Skriptum FH, Skripts FH, Script FH, Scripte FH, Scriptum FH, Scripts FH, howto, how-to, how to, Lehrbuch, Buch, Bücher, Buecher, Bericht, Crash Kurs Berlin, Crash-Kurs Berlin, Crashkurs Berlin, Report, Sachtext, Sachtexte, Übung, Übungen, Uebung, Uebungen, course, PbclevtugFgrsnaEnz, lecture note, lecture notes, Tutorial, Tutor, Tutorium, Teacher, Lehrer Berlin, Trainer Berlin, Beratung Berlin, Anleitung zum, Anleitungen zum, Einführung, Einfuehrung, Einführungen, Einfuehrungen, Handbuch für, Handbücher, Handbuecher, Support, Diplomarbeit, Facharbeit, Hausarbeit, Hausarbeiten, Werk, Werke, Text, Übungsblatt, Uebungsblatt, Lösung, Loesung, Lösungen, Loesungen, Auflösung, Aufloesung, Auflösungen, Aufloesungen, Facharbeit, Facharbeiten, Forum, Training, manual, Folie, Folien, Lehrmittel, beratung, Definition von, Allgemeine Erklärung, Allgemeine Erklaerung, Allgemeine Erklärungen, Allgemeine Erklaerung, Allgemeine Erklaerungen, Einfache Erklärung einfach, Einfache Erklaerung einfach, Einfache Erklärungen, Einfache Erklaerung, Einfache Erklaerungen, zum Thema, FAQ, FAQs, Konzept, Lernkurs, Lern-Kurs, Lernkurse, Lern-Kurse, eine kurze Erklärung, Begriff, Begriffe, Erklärung zu Begriffen, begriffbestimmung, begriffbestimmung, Begriffsbestimmung, Begriffserklärung, Begriffserklaerung, Wort, Worterklärung, Worterklaerung, Definition, Beispiel, Beispiele, Bedeutung, Bedeutungen, was bedeutet, Begriffsdefinition, für Anfänger, fuer Anfaenger, für Einsteiger, für Beginner, zum selber Lernen, handout, hand out, web based training, WBT, Net Based Training, NBT, computer based training, CBT, virtual learning environment, virtual university, für die Schule, Seminar, Seminare, Vorgehensweise, Pädagogik, Paedagogik, Akademie, Onlineacademie, Onlineakademie, Wissen, Unterrichtsvorbereitung für das Fach, Unterricht, für Lehrer, für Lehrerinnen, Referat, Referate, Hausaufgabe, Hausaufgaben, Tip, Tipp. Tipps und Tricks, Tips und Tricks, Methode, Methoden, Methodik, Funktion, Funktionsweise, Aufbau, Prinzip, Grundlage, Grundlagen, Internetschulung, Unterlage, Unterlagen, Struktur, Frage, Fragen, Antwort, Antworten, Schulunterricht, zum erlernen, was ist das?, wie?, lerne, Onlineausbildung, Onlinelehrgang, Onlinekurs, Onlinebuch, Webbuch, Academy, Fachhochschule, FH, TFH, Hochschule, Universität, Universitaet, Uni, Schule, Berufsschule, Gymnasium, Erste Schritte mit, Dozent, Dozenten, Zusammenfassung, Übersicht, Term, Fachwort, Fachbegriff, Fachbegriffe, Grundbegriff, Grundbegriffe, Lektion, Lektionen, Bedienungsanleitung, Bedienungsanleitungen, Spezialist, Spezialisten, Coaching, Coach, Fachbuch, technologie, Unterschied zwischen, Unterschiede zwischen, lehren, unterrichten, für das Studium, für Studenten, für Studentinnen, für Studierende, für Schüler, für Schülerinnen, Wie kann ich, Wie kann man, Hilfe, selber, erstellen, Erstellung, Beginner, Online-Seminar, Online-Kurs, Online-Schulung, ich, gebrauchsanweisung, gebrauchsanleitung, Bedienungsanweisung, Einweisung, Kurzinfo, Internet-Kurs, Internet-Kurse, Online-Training, Intensiv, Intensivkurs, Vortragsreihe, Präsentation, Grundzüge, Mitschrift, Mitschriften, Verständnis, verstehen, anwenden, Hintergrundwissen, Hintergrund, Hintergründe, content, Funktionsprinzip, Schritt für Schritt; E-Learning; elearning; online learning; Fernlehre, Fernlehrgang, Fernlehrgänge, Referent, Referenten, Fernkurs, Fernkurse, Fernstudium, Fernschule, Fernuniversität, Fernlehrer, Denken, Qualifizierungsmaßnahme, Qualifizierung, Qualifizierungen, Volkshochschulkurs, Volkshochschulkurse, Internet-Learning-Plattform, Online-Learning-Plattform, E-Learning-Plattform, Internetlearning-Plattform, Onlinelearning-Plattform, Elearning-Plattform, jetzt, Kochbuch, einfach erklärt, Kenntnis, Kenntniss, Kenntnisse, deutsche Hilfe, lernen und verstehen; blended learning; courseware, Profi, Profis, professionell, professionelle, professionelles, profesionell, profesionelle, profesionelles, professionel, gekonnt, für Könner, Grundkurs, Leistungskurs, Aufbaukurs, Lehrtext, Lehrtexte, Fachtext, Fachtexte, Ausarbeitung, distance learning, Online Seminar, distance education, Online Tutorium, Online Tutorien, technology-based learning, Computer based learning, CBL, Internet Based learning, IBL, Web based learning, WBL, online-learning, OL, online-training, OT, CAI, Computer Assisted Instruction, CUU, Computerunterstützter Unterricht, Computer-unterstützter Unterricht, Know how, Grundkenntnis, Grundkenntnisse, Kompetenz, Schulungsunterlagen, Insiderwissen, Rat, Lehrerinnen und Lehrer, ABC, Überblick, Arbeitsblatt, Sekundarstufe, Oberstufe, Material, Materialien, Unterrichtsentwurf, Unterrichtsentwürfe, Lerntip, Lerntips, Lerntipp, Lerntipps, ebook, schnell lernen, Lerner, Lernender, Lernende Erwachsenenbildung, Frage und Antwort, Selbststudium, Selbstudium, Umschulung, , kostenlos, kostenlose, kostenloses, kosten los, kosten lose, kosten loses, gratis, free, frei, freie, freies, privat, private, privates, homepage, home-page, home page, website, web site, webpage, web-page, web page, webpages, web-pages, web pages, webseite, Web-Seite, Webseite, Webseiten, Web-Artikel, Web Artikel, online, on-line, on line, download downloaden, down load, or, deutsch, deutsche, deutsches, deutscher, Deutschland, deutschsprachig, deutschsprachige, deutschsprachiges, german, germany, and, uebersicht, Uerbersicht, uebersichten, Uebersichten, Übersicht, übersicht, Übersichten, übersichten, Uebersicht, uebersicht, Uebersichten, uebersichten, Info, Infos zu, Information über, ueber, Informationen über, Auskunft, Auskünfte, Auskuenfte, Dienst, PbclevtugFgrsnaEnz, Angebot, Angebote, Anbieter, server, für, fuer, in, an, keyword, keywords, key word, keywords, internet, internets, net, network, net work, networks, net works, web, www, world wide web, Theorie, Praxis, Anwendung, DV, IT, glossar, fachwörterbuch it-glossar, computer lexikon, Computerlexikon, Computer-Lexikon, Lexikon, computer lexicon, Computerlexicon, Computer-Lexicon, Lexicon, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 was ist ein, was ist das, was sind, definiere, definition, define, Inhalt, html, xhtml, free im netz, PDF Text, digital, digitale, binär, binäre, elektronisch, elektronische, fachbegriff, fachbegriffe, konzept, Begriff, allgemein, allgemeine, allgemeines, Technik, Datentechnik, Digitaltechnik, Binätechnik, online lesen; , Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd720463, slrprddef720463, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/vba_prozedurvariablen