Microsoft Excel

Excel und VBA: Formeln, Programmierung, Lösungen

Die Excel/VBA-Beispiele

VBA-Begriff: Command-Funktion (Beispiel)

In diesem Beispiel wird die Command-Funktion verwendet, um die Befehlszeilenargumente in einer Funktion abzurufen. Sie werden in einem Wert vom Typ Variant, welcher ein Datenfeld enthält, zurückgegeben. Nicht verfügbar in Microsoft Office.

Function BefZeileAbrufen(Optional MaxArgs)
    ' Variablen deklarieren.
    Dim C, BefZl, BefZlLng, InArg, I, ZahlArgs
    ' Feststellen, ob MaxArgs angegeben wurde.
    If IsMissing(MaxArgs) Then MaxArgs = 10
    ' Datenfeld passender Größe erstellen.
    ReDim ArgFeld(MaxArgs)
    NumArgs = 0: InArg = False
    ' Befehlszeilenargumente abrufen.
    BefZl = Command()
    BefZlLng = Len(BefZl)
    ' Befehlszeile Zeichen für Zeichen 
    ' durchgehen.
    For I = 1 To BefZlLng
        C = Mid(BefZl, I, 1)
        ' Auf Leerzeichen oder Tabulatoren prüfen.
        If (C <> " " And C <> vbTab) Then
            ' Weder Leerzeichen noch Tabulatoren.
            ' Überprüfen ob bereits in Argument enthalten.
            If Not InArg Then
            ' Anfang des neuen Arguments.
            ' Überprüfen, ob zu viele Argumente verwendet wurden.
                If ZahlArgs = MaxArgs Then Exit For
                ZahlArgs = ZahlArgs + 1
                InArg = True
                End If
            ' Zeichen an aktuelles Argument anfügen.
            ArgFeld(ZahlArgs) = ArgFeld(ZahlArgs) + C
        Else
            ' Tabulator oder Leerzeichen gefunden.
            ' Das InArg-Attribut auf False festlegen.
            InArg = False
        End If
    Next I
    ' Größe des Datenfeldes neu bestimmen, so daß es
    ' gerade alle Argumente aufnehmen kann.
    ReDim Preserve ArgFeld(ZahlArgs)
    ' Datenfeld in Funktionsnamen zurückgeben.
    BefZeileAbrufen = ArgFeld()
End Function