Wykonuje metodę obiektu lub ustawia lub zwraca właściwość obiekt.
Składnia
CallByName ( object , procname, calltype [, args()])
W składni funkcji CallByName występują następujące argumenty:
|
Argument |
Opis |
|
obiekt |
Argument wymagany. Wariant (obiekt). Nazwa obiektu, na którym zostanie wykonana funkcja. |
|
nazwa_pro |
Argument wymagany. Wariant (ciąg). Wyrażenie ciągu zawierające nazwę właściwości lub metody obiektu. |
|
typ połączenia |
Argument wymagany. Stała. Stała typu vbCallType reprezentująca typ wywoływanej procedury. |
|
args () |
Argument opcjonalny. Wariant (tablica). |
Spostrzeżenia
Funkcja CallByName służy do uzyskiwania lub ustawiania właściwości albo wywoływania metody w czasie wykonywania przy użyciu nazwy ciągu.
W poniższym przykładzie w pierwszym wierszu właściwość CallByName jest używana do ustawiania właściwości MousePointer pola tekstowego, drugi wiersz pobiera wartość właściwości MousePointer , a trzeci wiersz wywołuje metodę Przenieś w celu przeniesienia pola tekstowego:
CallByName Text1, "MousePointer", vbLet, vbCrosshairResult = 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 w celu wywołania metody Przenieś 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 ustawiona na nazwę metody wywoływania, w tym przypadku "Przenieś". Po kliknięciu przycisku funkcja CallByName wywołuje metodę zmiany lokalizacji przycisku.
Option ExplicitPrivate Sub Form_Load() Label1.Caption = "Move"' Name of Move method.End SubPrivate Sub Command1_Click()If Command1.Left <> 0 Then CallByName Command1, Label1.Caption, vbMethod, 0, 0Else CallByName Command1, Label1.Caption, vbMethod, 500, 500End If