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