Kör en metod för ett objekt, eller anger eller returnerar en egenskap för en objekt.
Syntax
CallByName ( objekt , procname, calltype [, args()])
Syntaxen för funktionen CallByName har följande argument:
Argument |
Beskrivning |
objekt |
Obligatoriskt. Variant (Objekt). Namnet på det objekt som funktionen ska köras på. |
procname |
Obligatoriskt. Variant (sträng). Ett stränguttryck som innehåller namnet på en egenskap eller metod för objektet. |
samtalstyp |
Obligatoriskt. Konstant. En konstant av typen vbCallType som representerar den typ av procedur som anropas. |
args () |
Valfritt. Variant (matris). |
Kommentarer
Funktionen CallByName används för att hämta eller ange en egenskap, eller för att anropa en metod vid körning med hjälp av ett strängnamn.
I följande exempel använder den första raden CallByName för att ange egenskapen MousePointer för en textruta, den andra raden får värdet för egenskapen MousePointer och den tredje raden anropar metoden Flytta för att flytta textrutan:
CallByName Text1, "MousePointer", vbLet, vbCrosshair
Result = CallByName (Text1, "MousePointer", vbGet) CallByName Text1, "Move", vbMethod, 100, 100
Exempel
Obs!: I exemplen nedan visar vi hur du använder den här funktionen i en Visual Basic for Applications-modul (VBA). Om du vill läsa mer om hur man använder VBA, kan du välja Info för utvecklare i listrutan bredvid Sök och sedan skriva en eller flera söktermer i sökrutan.
I det här exemplet används funktionen CallByName för att anropa metoden Flytta för en kommandoknapp.
I exemplet används också ett formulär (Form1) med en knapp (Command1) och en etikett (Label1). När formuläret läses in anges etikettens beskrivningsegenskap till namnet på metoden som ska anropas, i det här fallet "Flytta". När du klickar på knappen anropar funktionen CallByName metoden för att ändra platsen för knappen.
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