Wykonuje metodę obiektu lub ustawia lub zwraca właściwość obiektu.
Składnia
CallByName(object , procname, calltype [, args()])
W składni funkcji WywołajNazwaNazwij występują następujące argumenty:
| Argumenty argumentów | Opis |
|---|---|
| obiekt | Argument wymagany. Wariant (obiekt). Nazwa obiektu, na którym funkcja zostanie wykonana. |
| Nazwa proc | Argument wymagany. Wariant (ciąg). Wyrażenie tekstowe zawierające nazwę właściwości lub metody obiektu. |
| calltype (typ połączenia) | Argument wymagany. Stała. Stała typu vbCallType reprezentująca typ wywoływanej procedury. |
| args() | Argument opcjonalny. Wariant (tablica). |
Uwagi
Funkcja CallByName służy do pobierania lub ustawiania właściwości lub wywoływania metody w czasie wykonywania przy użyciu nazwy ciągu.
W poniższym przykładzie w pierwszym wierszu użyto metody CallByName w celu ustawienia właściwości MousePointer pola tekstowego, w drugim wierszu została użyta właściwość MousePointer (Wskaźnik myszy ), a w trzecim wierszu została wywołana metoda Move w celu przeniesienia pola tekstowego:
CallByName Text1, "MousePointer", vbLet, vbCrosshair
Result = CallByName (Text1, "MousePointer", vbGet)
CallByName Text1, "Move", vbMethod, 100, 100
Przykład
Uwaga
Poniższe przykłady przedstawiają sposób użycia tej funkcji w module języka Visual Basic for Applications (VBA). Aby uzyskać dodatkowe informacje na temat pracy w języku VBA, wybierz pozycję Dokumentacja dewelopera z listy rozwijanej obok przycisku Wyszukaj i wprowadź odpowiednie terminy w polu wyszukiwania.
W tym przykładzie użyto funkcji CallByName do wywołania metody Move przycisku polecenia.
W przykładzie użyto również formularza (Form1) z przyciskiem (Command1) i etykietą (Label1). Po załadowaniu formularza właściwość Caption etykiety jest ustawiana na nazwę metody wywoływania, w tym przypadku "Move". Po kliknięciu przycisku funkcja CallByName wywołuje metodę zmiany lokalizacji przycisku.
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