Funkce CallByName

Platí pro
Access pro Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Spustí metodu objektu nebo nastaví nebo vrátí vlastnost objektu.

Syntaxe

CallByName(object , procname, calltype [, args()])

Syntaxe funkce CallByName obsahuje tyto argumenty:

Argument Popis
objekt Povinný argument. Varianta (Object). Název objektu, na kterém bude funkce spuštěna.
procname Povinný argument. Proměnná (String). Řetězcový výraz obsahující název vlastnosti nebo metody objektu.
typ volání Povinný argument. Konstantní. Konstanta typu vbCallType představující typ volané procedury.
args() Nepovinný argument. Proměnná (matice).

    

Poznámky

Funkce CallByName slouží k získání nebo nastavení vlastnosti nebo k vyvolání metody za běhu pomocí názvu řetězce.

V následujícím příkladu první řádek používá CallByName k nastavení vlastnosti MousePointer textového pole, druhý řádek získá hodnotu vlastnosti MousePointer a třetí řádek vyvolá Move metodu k přesunutí textového pole:

CallByName Text1, "MousePointer", vbLet, vbCrosshair
Result = CallByName (Text1, "MousePointer", vbGet)
CallByName Text1, "Move", vbMethod, 100, 100

Příklad

Poznámka

Následující příklady ukazují použití této funkce v modulu VBA (Visual Basic pro Applications). Pokud chcete další informace o práci s modulem VBA, vyberte Referenční informace pro vývojáře, které najdete v rozevíracím seznamu vedle položky Hledat a do vyhledávacího pole napište požadované pojmy.

Tento příklad používá funkci CallByName k vyvolání metody Move příkazového tlačítka.

V příkladu se taky používá formulář (Form1) s tlačítkem (Command1) a popiskem (Label1). Při načtení formuláře Caption je vlastnost popisku nastavena na název metody, která má být vyvolána, v tomto případě "Move". Když kliknete na tlačítko, funkce CallByName vyvolá metodu pro změnu umístění tlačítka.

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