Variablen und Felder → ohne Beispiele | |
Variablen Deklaration | |
Option Explicit | Variablen- Deklarationen erzwingen |
Option Base 1 / 0 | Kleinster Deklarierungswert |
Dim <Variable> As <Variablentyp> | Deklarierung von Variablen |
Static <Variable> As <Variablentyp> | Der Wert der Variable bleibt beim Aufruf einer Prozedur bestehen. |
Const <Variable> = Wert | Es wird ein konstanter Wert definiert. |
Variablentypen | |
Byte |
Kleine Ganzzahl Größe: 1 Byte Bereich: 0 - 255 |
Beispiel:
Dim KleineGanzzahl As Byte |
|
Integer % |
Ganzzahl Größe: 2 Byte Bereich: -32.768 bis 32.767 |
Beispiel:
Dim Ganzzahl As Integer Dim Ganzzahl% --> Kurzform |
|
Long & |
Große Ganzzahl Größe: 4 Byte Bereich: 2.147.483.648 bis 2.147.483.647 |
Beispiel: Dim GrosseGanzzahl As Long Dim GrosseGanzzahl& --> Kurzform |
|
Single ! |
Dezimalzahl Größe: 4 Byte Bereich: -3,402823E38 bis 3,402823E38 |
Beispiel: Dim DezimalZahl As Single Dim DezimalZahl! --> Kurzform |
|
Double # |
Große Dezimalzahl Größe: 8 Byte Bereich: -1,79769313486231E308 bis 1,79769313486232E308 |
Beispiel: Dim GrosseDezimalzahl As Double Dim GrosseDezimalzahl# --> Kurzform |
|
Boolean |
Wahrheitswert Größe: 2 Byte Bereich: True / False |
Beispiel: Dim Schalter As Boolean |
|
String $ |
Text Größe: 1 Byte je Zeichen + 10 Byte 2 Milliarden Zeichen möglich |
Beispiel: Dim Text As String Dim Text$ --> Kurzform |
|
String *<Anzahl Zeichen> |
Text Größe: 1 Byte je Zeichen 65535 Zeichen möglich |
Beispiel: Dim CodeNummer As String * 10 |
|
Date |
Datum Größe: 8 Byte Bereich 01.01.100 bis 31.12.9999 |
Beispiel: Dim Datum As Date Datum = #12/24/2010# --> ergibt den 24.12.2010 |
|
Object |
Objekt Größe: 4 Byte |
Beispiel: Dim Bereich As Object Set Bereich = Range("A1:G20") |
|
Variant |
Variable Konstante für Zahlen, Texte, Objekte ... Größe: 16 Byte bei Zahlen, bei Texten je 1 Byte / Zeichen + 22 Byte für die Variable |
Beispiel: Dim Dummy As Variant Dummy = "Hallo" Dummy = 123 |
|
Type <Strukturname> <Variablendeklarationen> End Type Sub Test() DIM <Variable> As <Strukturname> End Sub |
Benutzerdefinierte Variablen Variablen-Definition per Type-Anweisung |
Beispiel: Type AdressenStruktur VorName As String * 15 Nachname As String * 15 Plz As String * 5 Ort As String * 25 Strasse As String * 10 StrassenNr As String * 4 End Type Sub Test() Dim Adressen As AdressenStruktur Adressen.VorName = "Karl-Friedrich" Adressen.Nachname = "Schiller" End Sub |
|
IsDate(<Variable>)
Datum ? |
Bestimmung des Variablen- Inhaltes |
Felder | |
Dim <Variable>( 1 To <Wert>, .. ) As <Variablentyp> |
Feld-Deklaration Deklaration eines eindimensionalen Feldes Deklaration eines zweidimensionalen Feldes Deklaration eines dreidimensionalen Feldes |
Beispiel: Dim Monate(1 To 12) As String Dim Tabelle(1 To 100, 1 To 10) As Integer Dim Tab3D(1 To 10, 1 To 5, 1 To 3) As Double |
|
ReDim <Variable>( 1 To <Wert>, .. ) As <Variablentyp> |
Neue Dimensionierung eines Datenfeldes Wird angewandt um ein bestehendes Datenfeld zu erweitern oder zu verkleinern, oder ein Datenfeld Mittels Variablen zu dimensionieren was mit der Dim- Anweisung nicht möglich ist. |
Beispiel: ReDim Feld(1 To 10) As Single Von = 2 Bis = 10 ReDim Feld(Von To Bis) As Single |
|
Feld-Anweisungen | |
Dim <Variable> <Variable> = Array(<Wert>, <Wert>, <Wert>) |
Die Array-Anweisung |
Beispiel 1: Option Base 0 Sub ElementeSetzen() Dim Element As Variant Element = Array("Wasserstoff", "Helium", "Lithium") ' Elemente ( 0..2 ) End Sub Beispiel 2: Option Base 1 Sub ElementeSetzen() Dim Element As Variant Element = Array("Wasserstoff", "Helium", "Lithium") ' Elemente ( 1..3 ) End Sub Beispiel 3: Option Base 1 Sub FeldFelder() Dim A(1 To 3) A(1) = Array(1, 2, 3, 4, 5) ' A(1)(1..5) A(2) = Array(6, 7, 8, 9, 10) ' A(2)(1..5) A(3) = Array(11, 12, 13, 14, 15, 16, 17) ' A(3)(1..7) MsgBox A(2)(3) End Sub |
|
Erase <Feldvariable> | Inhalte eines Datenfeld löschen |
Beispiel: Dim DatenFeld(1 To 20) As Single <Weitere Anweisungen> Erase DatenFeld |
|
LBound(<Feldname>,[<DimensionierungsEbene>] |
Gibt die untere Dimensionierungsgrenze eines Datenfelde zurück |
Bespiel: Dim Daten(-5 To 33, 1 To 20, 1 To 3) As Double MsgBox LBound(Daten, 1) --> ergibt -5 MsgBox LBound(Daten, 3) --> ergibt 1 |
|
UBound(<Feldname>,[<DimensionierungsEbene>] | Gibt die obere Dimensionierungsgrenze eines Datenfelde zurück |
Beispiel: Dim Daten(-5 To 33, 1 To 20, 1 To 3) As Double MsgBox UBound(Daten, 1) --> ergibt 33 MsgBox UBound(Daten, 3) --> ergibt 3 |
|
IsArray(<Variable>) Feldvariable ? | Bestimmt, ob eine Variable ein Feld ist |
<FeldVariable> = Split(<Variable>, <Trenner>) | Variablen- Inhalt in eine Feld-Variable umwandeln |
Beispiel: Dim Text As String Dim Quartal1 As Variant Text = "Jan|Feb|Mär|Apr" ' Inhalt der Variable Text setzen. Quartal1 = Split(Text, "|") ' verwandelt den Inhalt der Variable Text in ein Feld ' das heißt die Variant- Variable 'Quartal1' wird zum Feld ' mit der Dimension Quartal1( 0 To 3) ' bzw. Quartal1( 1 To 4) wenn 'Option Base 1' gesetzt wurde. MsgBox Quartal1(3) ' gibt das 4. Feldelement der Feldvariable Quartal1 aus ' Ist 'Option Base 1' gesetzt, wäre es das 3. Feldelement. |
|
<Variable> = Join(<FeldVariable>, <Trenner>) | Feld- Variable in eine Variable umwandeln |
Beispiel: Dim Text As String ' Deklarieren der Textvariable 'Text' Dim Quartal1(1 To 4) As String ' Deklarieren der Feldvariable 'Quartal1' Quartal1(1) = "Jan": Quartal1(2) = "Feb" ' Feldvariable setzen Quartal1(3) = "Mär": Quartal1(4) = "Apr" Text = Join(Quartal1, "|") ' Inhalte der Feld-Variable in die Textvariable ' füllen und als Trennzeichen "|" setzen. MsgBox Text ' Ergebnis "Jan|Feb|Mär|Apr" |
|
<FeldVariable> = Filter(<FeldVariable>, <Suchwort>) | Filtert ein Feld vom Typo Feld(0 ... n ) nach einem Suchwort |
Beispiel : Dim Tabelle1 As Variant Dim Tabelle2 As Variant Tabelle1 = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 3, 5, 1, 6, 9, 4, 5, 62) Tabelle2 = Filter(Tabelle1, 1, , vbTextCompare) ' Tabelle1 muß ein 1-dimensionales Feld sein. ' Anmerkung: Tabelle2 ist ein Text-Feld !! |
|
<Variable> = Range(<Bereich>) | Feld- Variable mit Daten aus Excel-Tabelle versehen |
Beispiel 1: Dim Tabelle as Variant ' Feld-Variable deklarieren Tabelle = Range("A1:G10") ' Feld-Variable mit den Daten aus ' dem Bereich A1 bis G10 übernehmen. |
|
Beispiel 2: Dim Tabelle as Variant ' Feldvariable deklarieren Tabelle = Range("A1").CurrentRegion ' Es werden alle zusammenhängende Zellen um A1 ' in die Feld-Variable Tabelle übernommen. |
|
Beispiel 3: Dim Tabelle as Variant ' Feldvariable deklarieren Tabelle = Range(Cells(1, 1), Cells.SpecialCells(xlLastCell)) ' Es werden alle Daten des aktuellen Tabellenblattes ' in die Feld-Variable Tabelle geschrieben. |
|
<Variable> = Application.Transpose(<Variable> | Feld- Variable transponieren ( Zeilen und Spalten austauschen ) |
Beispiel : Dim Tabelle As Variant Tabelle = Range("A1").CurrentRegion ' Daten aus aktuellem Tabellenblatt übernehmen Tabelle = Application.Transpose(Tabelle) ' Tabelle transponieren ( analog zur Excelfunktion MTRANS ) |