Utfører en metode for et objekt, eller angir eller returnerer en egenskap for et objekt.
Syntaks
CallByName(object , procname, calltype [, args()])
Syntaksen for CallByName-funksjonen har disse argumentene:
| Argumenter | Beskrivelse |
|---|---|
| objekt | Obligatorisk. Variant (objekt). Navnet på objektet der funksjonen skal kjøres. |
| 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 prosedyretypen som kalles. |
| args() | Valgfritt. Variant (matrise). |
Merknader
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 får verdien av MousePointer-egenskapen , og den tredje linjen aktiverer Move-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 flyttemetoden for en kommandoknapp.
I eksemplet brukes også et skjema (Form1) med en knapp (Command1) og en etikett (Label1). Når skjemaet lastes inn, settes Caption-egenskapen 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 av 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