Выполняет метод объекта или задает или возвращает свойство объекта .
Синтаксис
CallByName(object , procname, calltype [, args()])
Функция CallByName имеет следующие аргументы:
| Аргумент | Описание |
|---|---|
| объект | Обязательный аргумент. Variant (Object). Имя объекта, для которого выполняется функция. |
| имя_свойства | Обязательный аргумент. Variant (String). Строковое выражение, содержащее имя свойства или метода объекта. |
| тип_вызова | Обязательный аргумент. Значение Constant. Константа типа vbCallType, представляющая тип вызываемой процедуры. |
| args() | Необязательный аргумент. Variant (Array). |
Замечания
Функция CallByName используется для получения или задания свойства либо для вызова метода во время выполнения с помощью строкового имени.
В следующем примере в первой строке функция CallByName используется для задания свойства текстового поля MousePointer, вторая строка получает значение свойства MousePointer, а третья строка вызывает метод Move для перемещения текстового поля:
CallByName Text1, "MousePointer", vbLet, vbCrosshair
Result = CallByName (Text1, "MousePointer", vbGet)
CallByName Text1, "Move", vbMethod, 100, 100
Пример
Примечание
В примерах ниже показано, как использовать эту функцию в модуле Visual Basic для приложений (VBA). Чтобы получить дополнительные сведения о работе с VBA, выберите Справочник разработчика в раскрывающемся списке рядом с полем Поиск и введите одно или несколько слов в поле поиска.
В данном примере функция CallByName используется для вызова метода кнопки Move.
В примере также используется форма (Form1) с кнопкой (Command1) и меткой (Label1). После загрузки формы свойству надписи Caption присваивается имя вызываемого метода, в данном случае "Move" (Перемещение). При нажатии кнопки функция CallByName вызывает метод для изменения расположения кнопки.
Option Explicit
Private Sub Form_Load()
Label1.Caption = "Move"' Name of Move method.
End Sub
Private Sub Command1_Click()
If Command1.Left <> 0 Then
CallByName Command1, Label1.Caption, vbMethod, 0, 0
Else
CallByName Command1, Label1.Caption, vbMethod, 500, 500
End If