Передает управление в процедуру Sub, процедуру Function или процедуру библиотеки динамической компоновки (DLL).
Call имя [списокАргументов]
Параметры
имя
Обязательный. Имя вызываемой процедуры.
списокАргументов
Необязательный. Разделяемый запятыми список переменных, массивов или выражений, передаваемых в процедуру. Компоненты спискаАргументов могут включать ключевые слова ByVal или ByRef для описания того, каким образом аргументы будут рассматриваться вызываемой процедурой. Однако ключевые слова ByVal и ByRef могут использоваться с инструкцией Call только при вызове процедуры из библиотеки динамической компоновки.
Замечания
Не обязательно применять ключевое слово Call при вызове процедуры. Однако, если ключевое слово Call используется для вызова процедуры с аргументами, списокАргументов должен быть заключен в скобки. Если ключевое слово Call не используется, необходимо также опустить скобки вокруг спискаАргументов. При использовании синтаксиса Call для вызова как внутренней, так и определяемой пользователем функции, возвращаемое функцией значение отбрасывается.
Для передачи в процедуру полного массива следует воспользоваться именем массива с пустыми скобками.
Пример
В данном примере показано, как использовать инструкцию Call для передачи управления процедуре Sub, внутренней функции, процедуре библиотеки динамической компоновки (DLL) и процедуре программного ресурса Macintosh.
' Вызов процедуры Sub. Call PrintToDebugWindow("Всем привет") ' Предыдущая инструкция передает управление следующей процедуре Sub. Sub PrintToDebugWindow(AnyString) Debug.Print AnyString ' Вывод в окно отладки. End Sub ' Вызов внутренней функции. Значение, возвращаемое этой функцией, ' не используется. Call Shell(AppName, 1) ' AppName содержит путь к выполняемому файлу. ' Вызов процедуры DLL Microsoft Windows. Инструкция Declare должна ' быть личной (Private) в модуле класса, но не в стандартном модуле. Private Declare Sub MessageBeep Lib "User" (ByVal N As Integer) Sub CallMyDll() Call MessageBeep(0) ' Вызов процедуры Windows DLL. MessageBeep 0 ' Повторный вызов без ключевого слова Call. End Sub ' Вызов программного ресурса Macintosh. Declare Sub MessageAlert Lib "MyHd:MyAlert" Alias "MyAlert" (ByVal N _ As Integer) Sub CallMyCodeResource() Call MessageAlert(0) ' Вызов программного ресурса Macintosh. MessageAlert 0 ' Повторный вызов без ключевого слова Call. End Sub