Виконує метод об'єкта, встановлює чи повертає властивість об'єкта.
Синтаксис
CallByName(object , procname, calltype [, args()])
Синтаксис функції CallByName має такі аргументи:
| Аргумент | Опис |
|---|---|
| об’єкт | — обов’язковий аргумент. Варіант Variant (Object). Ім'я об'єкта, на якому буде виконуватися функція. |
| Призначення | Обов’язковий аргумент. Дані типу Variant (String). Рядковий вираз, який містить ім'я властивості або методу об'єкта. |
| calltype (тип виклику) | — обов’язковий аргумент. Постійний. Константа типу 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 for Applications (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