Execută metoda unui obiect sau setează sau returnează o proprietate a unui obiect.
Sintaxă
CallByName(object , procname, calltype [, args()])
Sintaxa funcției CallByName are următoarele argumente:
| Argument | Descriere |
|---|---|
| obiect | Obligatoriu. Variant (obiect). Numele obiectului pe care va fi executată funcția. |
| procname | Obligatoriu. Variant (șir). O expresie șir care conține numele unei proprietăți sau metode a obiectului. |
| tip de apel | Obligatoriu. Constant. O constantă de tip vbCallType care reprezintă tipul de procedură apelată. |
| args() | Opțional. Variant (matrice). |
Observații
Funcția CallByName este utilizată pentru a obține sau a seta o proprietate sau pentru a invoca o metodă la momentul rulării, utilizând un nume de șir.
În exemplul următor, prima linie utilizează CallByName pentru a seta proprietatea MousePointer a unei casete text, a doua linie obține valoarea proprietății MousePointer și a treia linie apelează metoda Move pentru a muta caseta text:
CallByName Text1, "MousePointer", vbLet, vbCrosshair
Result = CallByName (Text1, "MousePointer", vbGet)
CallByName Text1, "Move", vbMethod, 100, 100
Exemplu
Notă
Exemplele care urmează demonstrează utilizarea acestei funcții într-un modul Visual Basic for Applications (VBA). Pentru mai multe informații despre lucrul cu VBA, selectați Referințe pentru dezvoltatori în lista verticală de lângă Căutare și introduceți unul sau mai mulți termeni în caseta de căutare.
Acest exemplu utilizează funcția CallByName pentru a invoca metoda de mutare a unui buton de comandă.
Exemplul utilizează, de asemenea, un formular (Form1) cu un buton (Command1) și o etichetă (Label1). Când se încarcă formularul, proprietatea Caption a etichetei este setată la numele metodei de invocat, în acest caz, "Mutare". Atunci când faceți clic pe buton, funcția CallByName invocă metoda pentru a modifica locația butonului.
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