Execută o metodă a unui obiect sau setează sau returnează o proprietate a unui obiect.
Sintaxă
CallByName ( obiect , nume proc, tip apel [, args()])
Sintaxa funcției CallByName are următoarele argumente:
Argument |
Descriere |
obiect |
Obligatoriu. Variant (Obiect). Numele obiectului pe care va fi executată funcția. |
numec |
Obligatoriu. Variant (Șir). O expresie șir care conține numele unei proprietăți sau metode ale obiectului. |
tip apel |
Obligatoriu. Constantă. O constantă de tip vbCallType reprezentând 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 , iar 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 Move a unui buton de comandă.
De asemenea, exemplul utilizează un formular (Form1) cu un buton (Command1) și o etichetă (Label1). Atunci când formularul este încărcat, proprietatea Caption a etichetei este setată la numele metodei de invocare, în acest caz, "Move". Atunci când faceți clic pe buton, funcția CallByName apelează metoda de 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