Изпълнява метод на обект или задава, или връща свойство на обект.
Синтаксис
CallByName(object , procname, calltype [, args()])
Синтаксисът на функцията CallByName има следните аргументи:
| Аргумент | Описание |
|---|---|
| обект | Задължително. Вариант (обект). Името на обекта, върху който ще се изпълни функцията. |
| procname | Задължително. Variant (String). Низов израз, съдържащ името на свойство или метод на обекта. |
| тип обаждане | Задължително. Константа. Константа от тип 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 на етикета се задава да бъде името на метода, който да се извика, в този случай "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