Excel VBA-Kurs (6): Grundlagen der Excel VBA-Sprache – Variablen
In diesem Artikel betrachten wir den Inhalt von Variablen unter den Grundlagen der Excel-VBA-Sprache.
Dies ist eine Fortsetzung des vorherigen Artikels.
Excel VBA-Kurs (5): Excel-Dateierweiterung, VBE, Schrifteinstellungen
3. Grundlagen der Excel-VBA-Sprache
3.1. Variable
Untersuchen Sie Variablendeklaration und Bindungsmethoden.
3.1.1. variable Aussage
Deklarieren Sie eine Variable mit der folgenden Syntax:
'변수 선언 문법 Dim <변수명> [As Type]
In Visual Basic können Sie eine Variable verwenden, ohne sie zu deklarieren, und selbst wenn Sie sie deklarieren, dürfen Sie den Typ nicht angeben.
Dim t, x
Wie oben gibt es kein Problem, wenn Sie den Typ nicht angeben, während Sie die t- und x-Variablen deklarieren.
Um jedoch die Möglichkeit von Fehlern oder Bugs zu reduzieren und den Code besser lesbar zu machen, wird empfohlen, Folgendes zu beachten.
- Variablen müssen deklariert und verwendet werden. (Option Explizit empfohlen)
- Auch der Typ muss angegeben werden.
- Auf den Variablennamen wird die ungarische Notation angewendet, die die Abkürzung des Typs als Präfix verwendet, damit der Typ leicht erkannt werden kann.
'문자열 Title Dim sTitle As String
- Die Verwendung koreanischer Schriftzeichen für Namen wie Variablennamen, Prozedurnamen und Funktionsnamen stellt überhaupt kein Problem dar. Wenn die Entscheidung für einen Variablennamen schwierig ist oder die Lesbarkeit verbessert werden soll, verwenden Sie aktiv koreanische Namen.
Die hauptsächlich verwendeten Typen und Präfixe sind wie folgt.
Präfix | Art | Länge | Bezug |
---|---|---|---|
s | Schnur | 10 + Saitenlänge | Etwa 2 Milliarden Zeichen können ausgedrückt werden |
ich | Ganze Zahl | 2 Byte | Schwellenwerte: -32.768 bis 32.767 |
l | Lang | 4 Bytes | Grenzen: -2.147.483.648 bis 2.147.483.647 |
b | Boolesch | 2 Byte | Wahr falsch |
Ö | Objekt | Objekte wie Arbeitsmappe, Arbeitsblatt, Bereich und Sammlung |
Ein Beispiel für die Deklaration einer Variablen mit dem obigen Präfix ist wie folgt.
Dim s단어 As String Dim b단어발견 As Boolean Dim oTargetBook As Workbook Dim oTargetSht As Worksheet
3.1.2. Variablen Frühe Bindung, Späte Bindung
Die Methode, bei der der Variablentyp bei der Deklaration bestimmt wird, heißt Early Binding, und die Methode, bei der er bei der Ausführung bestimmt wird, heißt Late Binding. Die Konzepte, Beispiele, Empfehlungen, Vor- und Nachteile der beiden Methoden sind in der folgenden Tabelle zusammengefasst.
Einteilung | Frühe Bindung | Späte Bindung |
---|---|---|
Konzept | So geben Sie einen Typ an, wenn Sie eine Variable deklarieren Wenn es sich nicht um einen integrierten Typ handelt, fügen Sie einen Verweis auf diesen Typ hinzu und geben Sie den Typ an | Wie Typen zur Ausführungszeit angegeben werden |
Beispiel | Schwaches Schwert als Schnur Dim oRecordSet As ADO.RecordSet | Schwaches Schwert Dim oRecordSet als Objekt |
Empfehlungen | In den meisten Fällen empfohlen | Nur verwenden, wenn es absolut notwendig ist (nur auf Objekttyp beschränkt) |
Vorteile | Automatische Vervollständigung beim Schreiben von Code, dynamische Hilfeunterstützung (bequem) Da der Typ zur Kompilierzeit bestimmt wird, ist dies für die Leistung vorteilhaft. | Wenn im laufenden Computer keine Referenzbibliothek vorhanden ist, wird nur der spät gebundene Codeteil nicht ausgeführt. |
Nachteile | Wenn im laufenden Computer keine Referenzbibliothek vorhanden ist, wird das Ganze nicht ausgeführt | Automatische Vervollständigung wird beim Schreiben von Code nicht unterstützt (umständlich) Die Leistung ist relativ schlecht, da der Typ zur Ausführungszeit bestimmt und dynamisch gebunden wird. |
Sehen wir uns Beispielcode für jede Methode an. Dies ist ein einfacher Code, der Empfänger, Betreff und Inhalt einer E-Mail mit Outlook erstellt und auf dem Bildschirm anzeigt.
Der Beispielcode der frühen Bindungsmethode lautet wie folgt.
Sub SendOLMail_EarlyBound() ' declare variables for the Application and Mailitem objects Dim oAPP As Outlook.Application Dim oItem As Outlook.MailItem ' instantiate the Application Set oAPP = New Outlook.Application ' create a new email Set oItem = oAPP.CreateItem(olMailItem) ' set basic properties and display the email With oItem .To = "foo@bar.com" .Subject = "this is a test" .Body = "nothing to see here" .Display End With End Sub
Die Variablen oApp und oItem wurden bei der Deklaration als Outlook.Application-Typ bzw. Outlook.MailItem-Typ bezeichnet. In diesem Fall müssen Sie wie folgt einen Verweis auf die Outlook-Bibliothek hinzufügen.
Öffnen Sie das Menü „VBE > Tools > Referenzen“, aktivieren Sie „Microsoft Outlook 16.0-Objektbibliothek“ unter „Verfügbare Referenzen“ und klicken Sie auf die Schaltfläche „OK“.
Wenn Sie das Referenzmenü erneut öffnen, sollte es so aussehen:
Wenn Sie die Makrodatei (.xlsm oder .xlsb), in der dieser VBA-Code gespeichert ist, auf einen PC kopieren, auf dem Outlook 16 nicht installiert ist, und sie ausführen, tritt eine Fehlermeldung auf, dass der Typ nicht gefunden werden kann.
Ein Beispielcode für die späte Bindungsmethode lautet wie folgt.
Sub SendOLMail_LateBound() Dim oAPP As Object Dim oItem As Object ' need to declare this constant as it has no meaning without ' the reference set to the Outlook library Const olMailItem As Long = 0 ' instantiate the Application - cannot use New without a reference ' so we must use CreateObject Set oAPP = CreateObject("Outlook.Application") '이후 코드는 동일 ' create a new email Set oItem = oAPP.CreateItem(olMailItem) ' set basic properties and display the email With oItem .To = "foo@bar.com" .Subject = "this is a test" .Body = "nothing to see here" .Display End With End Sub
Die Variablen oApp und oItem werden zum Zeitpunkt der Deklaration als Objekttyp bezeichnet, und die Objekterstellungsmethode ist unterschiedlich.
Erstellen Sie ein Objekt mit dem folgenden Code in Zeile 10.
Set oAPP = CreateObject(“Outlook.Application”)
Eine ausführliche Beschreibung der CreateObject-Funktion finden Sie unter der folgenden URL.
Einige Auszüge aus der obigen URL bleiben zurück.
Syntax
CreateObject(Klasse, [Servername])
Die CreateObject Funktionssyntax hat diese Teile:
Teil | Beschreibung |
Klasse | Erforderlich; Variante (Schnur). Der Anwendungsname und die Klasse des zu erstellenden Objekts. |
Servername | Optional; Variante (Schnur). Der Name des Netzwerkservers, auf dem das Objekt erstellt wird. Wenn Servername eine leere Zeichenfolge („“) ist, wird der lokale Computer verwendet. |
Die Klasse Streit verwendet die Syntax appname.objecttype und hat diese Teile:
Teil | Beschreibung |
App Name | Erforderlich; Variante (Schnur). Der Name der Anwendung, die das Objekt bereitstellt. |
Objekttyp | Erforderlich; Variante (Schnur). Der Typ bzw Klasse des zu erstellenden Objekts. |
Wenn Sie die Makrodatei (.xlsm oder .xlsb), in der dieser VBA-Code gespeichert ist, auf einen PC kopieren, auf dem Outlook 16 nicht installiert ist, und ausführen, tritt wie bei der frühen Bindung ein Fehler auf, dass der Typ nicht gefunden werden kann. Der Unterschied besteht darin, dass bei der Early-Binding-Methode nicht alle Codes von Anfang an ausgeführt werden, wenn keine Referenzbibliothek vorhanden ist, und bei der Late-Binding-Methode andere Codes ausgeführt werden und nur die Codes (Prozeduren, Funktionen) einschließlich CreateObject nicht ausgeführt werden.
Bisher haben wir Variablendeklarationen und Bindungsmethoden betrachtet. Als nächstes werde ich die Syntax der VBA-Sprache erklären.
<<Verwandte Artikelliste >>
- Starten Sie den Excel-VBA-Kurs. (Vorlesungsankündigung, feat. Warum wir Excel VBA empfehlen)
- Excel VBA-Kurs(1): Überblick über Excel VBA
- Excel VBA-Kurs (2): Excel VBA-Grundlagen
- Excel VBA-Kurs (3): Excel-Objektmodell
- Excel VBA-Kurs (4): Arbeiten mit dem Excel-Objektmodell
- Excel VBA-Kurs (5): Excel-Dateierweiterung, VBE, Schrifteinstellungen
- Excel VBA-Kurs (6): Grundlagen der Excel VBA-Sprache – Variablen
- Excel VBA-Kurs (7): Grundlagen der Excel VBA-Sprache – Syntax
- Excel VBA-Kurs (8): Grundlagen der Excel VBA-Sprache – Datentypen, Datenstrukturen
- Excel VBA-Kurse (9): Excel VBA How-To
- Excel VBA-Kurs (10): Tools, die mit Excel VBA entwickelt und verwendet werden
- Vollständiges Inhaltsverzeichnis für Excel VBA-Kurse