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