Udfører en metode for et objekt eller angiver eller returnerer en egenskab for en objekt.
Syntaks
CallByName ( objekt , procname, calltype [, args()])
Syntaksen for funktionen CallByName har disse argumenter:
Argument |
Beskrivelse |
objekt |
Påkrævet. Variant (objekt). Navnet på det objekt, som funktionen skal udføres på. |
procname |
Obligatorisk. Variant (Streng). Et strengudtryk, der indeholder navnet på en egenskab eller metode for objektet. |
opkaldstype |
Påkrævet. Konstant. En konstant af typen vbCallType , der repræsenterer den type procedure, der kaldes. |
args () |
Valgfrit. Variant (matrix). |
Bemærkninger
Funktionen CallByName bruges til at hente eller angive en egenskab eller til at aktivere en metode på kørselstidspunktet ved hjælp af et strengnavn.
I følgende eksempel bruger den første linje CallByName til at angive egenskaben MousePointer for et tekstfelt, den anden linje får værdien af egenskaben MousePointer , og den tredje linje aktiverer metoden Flyt for at flytte tekstfeltet:
CallByName Text1, "MousePointer", vbLet, vbCrosshair
Result = CallByName (Text1, "MousePointer", vbGet) CallByName Text1, "Move", vbMethod, 100, 100
Eksempel
Bemærk!: Følgende eksempler demonstrerer brugen af denne funktion i et VBA-modul (Visual Basic for Applications). Hvis du vil have mere at vide om at arbejde med VBA, skal du vælge Udviklerreference på rullelisten ud for Søg og skrive ét eller flere ord i søgefeltet.
I dette eksempel bruges funktionen CallByName til at aktivere metoden Flyt for en kommandoknap.
I eksemplet bruges også en formular (Form1) med en knap (Command1) og en etiket (Label1). Når formularen indlæses, angives egenskaben Titeltekst for navnet til navnet på den metode, der skal aktiveres, i dette tilfælde "Flyt". Når du klikker på knappen, aktiverer funktionen CallByName metoden til at ændre knappens placering.
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