CallByName – funkce

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(objekt , procname, calltype [, args()])

Syntaxe funkce CallByName má tyto argumenty:

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

    

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á metodu Move pro 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 také používá formulář (Form1) s tlačítkem (Command1) a popiskem (Label1). Při načtení formuláře je vlastnost Caption popisku nastavena na název metody, která se má vyvolat, v tomto případě "Move". Po kliknutí 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