Задать вопрос
Hollib
@Hollib

Какую роль выполняет команда Call в языке VBA?

Команда Call это по сути вызов, но для чего она если все и так работает без нее в этом коде:
Private Sub userform_initialize()
    Call ComboBox1.AddItem("USD")
    Call ComboBox1.AddItem("EUR")
    Call ComboBox1.AddItem("RUB")
End Sub

Что есть она что ее нет, все работает , так для чего ее писать?
  • Вопрос задан
  • 523 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 2
ProgrammerForever
@ProgrammerForever Куратор тега Excel
Учитель, автоэлектрик, программист, музыкант
Можно и не писать, в большинстве случаев. Оно нужно когда "вызывается" выражение, не начинающееся идентификатора. Вот пример с документации:
Sub TestCall()
    Call (Sub() Console.Write("Hello"))()

    Call New TheClass().ShowText()
End Sub

Class TheClass
    Public Sub ShowText()
        Console.Write(" World")
    End Sub
End Class
Ответ написан
Комментировать
@Akina
Сетевой и системный админ, SQL-программист.
При использовании оператора Call с процедурой параметры вызываемой процедуры оборачиваются скобками. Если оператор опускаем, то опускаем и скобки.

Call mysub(param_1, param_2) ' правильно
mysub param_1, param_2       ' правильно
mysub(param_1, param_2)      ' ошибка синтаксиса


Оператор Call позволяет вызвать на исполнение не только процедуру, но и функцию - для выполнения заложенной в неё логики,- и при этом проигнорировать её результат. В случае функции параметры в любом случае обрамляются скобками.

output = myfunc(param_1, param_2) ' правильно
Call myfunc(param_1, param_2)     ' правильно
Call myfunc param_1, param_2      ' ошибка синтаксиса
myfunc(param_1, param_2)          ' ошибка синтаксиса
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы