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 ?
IsNumeric(<Variable>)   Zahl ?
IsObject(<Variable>)    Objekt ?
IsEmpty(<Variable>)     Leer ?
IsError(<Variable>)     Fehler ?
IsMissing(<Variable>)   Fehlt ?
IsNull(<Variable>)      NULL ?

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 )