Utfører en metode for et objekt, eller angir eller returnerer en egenskap for en objekt.
Syntaks
CallByName ( objekt , procname, calltype [, args()])
Syntaksen for funksjonen CallByName har følgende argumenter:
Argument |
Beskrivelse |
objekt |
Obligatorisk. Variant (objekt). Navnet på objektet som funksjonen skal kjøres på. |
procname |
Obligatorisk. Variant (streng). Et strenguttrykk som inneholder navnet på en egenskap eller metode for objektet. |
calltype |
Obligatorisk. Konstant. En konstant av typen vbCallType som representerer typen prosedyre som kalles. |
argumenter () |
Valgfritt. Variant (matrise). |
Kommentarer
CallByName-funksjonen brukes til å hente eller angi en egenskap, eller til å aktivere en metode ved kjøring ved hjelp av et strengnavn.
I eksemplet nedenfor bruker den første linjen CallByName til å angi MousePointer-egenskapen for en tekstboks, den andre linjen henter verdien for MousePointer-egenskapen , og den tredje linjen aktiverer Flytt-metoden for å flytte tekstboksen:
CallByName Text1, "MousePointer", vbLet, vbCrosshair
Result = CallByName (Text1, "MousePointer", vbGet) CallByName Text1, "Move", vbMethod, 100, 100
Eksempel
Obs!: I eksemplene nedenfor vises bruken av denne funksjonen i en VBA-modul (Visual Basic for Applications). Hvis du vil ha mer informasjon om hvordan du arbeider med VBA, velger du Utviklerreferanse fra rullegardinlisten ved siden av Søk og skriver inn ett eller flere søkeord i søkeboksen.
Dette eksemplet bruker CallByName-funksjonen til å aktivere Flytt-metoden for en kommandoknapp.
Eksemplet bruker også et skjema (Form1) med en knapp (Command1), og en etikett (Label1). Når skjemaet lastes inn, angis tittelegenskapen for etiketten til navnet på metoden som skal aktiveres, i dette tilfellet Flytt. Når du klikker knappen, aktiverer CallByName-funksjonen metoden for å endre plasseringen til 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