Выполняет метод объекта либо задает или возвращает свойство объекта.
Синтаксис
CallByName ( объект , имя_свойства, тип_вызова [, аргументы()])
Функция CallByName имеет следующие аргументы:
Аргумент |
Описание |
объект |
Обязательный аргумент. Variant (Object). Имя объекта, для которого выполняется функция. |
имя_свойства |
Обязательный аргумент. Variant (String). Строковое выражение, содержащее имя свойства или метода объекта. |
тип_вызова |
Обязательный аргумент. Значение Constant. Константа типа vbCallType, представляющая тип вызываемой процедуры. |
аргументы () |
Необязательный аргумент. 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