В данном примере функция Command используется для передачи аргументов командной строки в функцию, которая возвращает их в переменной типа Variant, содержащей массив.
- Код: Выделить всё
Function GetCommandLine(Optional MaxArgs)
'Описание переменных.
Dim C, CmdLine, CmdLnLen, InArg, I, NumArgs
'Проверяет наличие MaxArgs.
If IsMissing(MaxArgs) Then MaxArgs = 10
'Задание правильной размерности массива.
ReDim ArgArray(MaxArgs)
NumArgs = 0: InArg = False
'Получает аргументы командной строки.
CmdLine = Command()
CmdLnLen = Len(CmdLine)
'Последовательный анализ всех символов
'командной строки.
For I = 1 To CmdLnLen
C = Mid(CmdLine, I, 1)
'Проверка на наличие пробела или табуляции.
If (C <> " " And C <> vbTab) Then
'Символы пробела и табуляции не обнаружены.
'Проверяет, является ли символ частью аргумента.
If Not InArg Then
'Начинается новый аргумент.
'Проверка количества аргументов.
If NumArgs = MaxArgs Then Exit For
NumArgs = NumArgs + 1
InArg = True
End If
'Добавление символа к текущему аргументу.
ArgArray(NumArgs) = ArgArray(NumArgs) + C
Else
'Найден символ пробела или табуляции.
'Устанавливает для флага InArg значение False.
InArg = False
End If
Next I
'Изменение размера массива для хранения аргументов.
ReDim Preserve ArgArray(NumArgs)
'Возвращает массив в качестве имени функции.
GetCommandLine = ArgArray()
End Function
CmdLine = Command()
Александр Андреев писал(а):Вот эта строчка:
- Код: Выделить всё
CmdLine = Command()
ругается следующими словами: "Run-time error 450. Wrong number of arguments or invalid property assignment".
Александр Андреев писал(а):Тоже пробовал. Не работает (ругается уже по-другому).
VBA Interaction Command
VBA Interaction Command$
VBA CommandButton
Сейчас этот форум просматривают: Yandex-бот и гости: 72