Função CallByName

Aplica-se a
Access para Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Executa um método de um objeto ou define ou retorna uma propriedade de um objeto.

Sintaxe

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

A sintaxe da função CallByName tem esses argumentos:

Argumento Descrição
objeto Obrigatório. Variant (Objeto). O nome do objeto no qual a função será executada.
Procname Obrigatório. Variant (String). Uma expressão de cadeia de caracteres que contém o nome de uma propriedade ou método do objeto.
Calltype Obrigatório. Constante. Uma constante do tipo vbCallType que representa o tipo de procedimento que está sendo chamado.
args() Opcional. Variant (Matriz).

    

Comentários

A função CallByName é usada para obter ou definir uma propriedade ou para invocar um método em tempo de execução usando um nome de cadeia de caracteres.

No exemplo a seguir, a primeira linha usa CallByName para definir a propriedade MousePointer de uma caixa de texto, a segunda linha obtém o valor da propriedade MousePointer e a terceira linha invoca o método Move para mover a caixa de texto:

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

Exemplo

Observação

Exemplos a seguir demonstram o uso dessa função em um módulo VBA (Visual Basic for Applications). Para obter mais informações sobre como trabalhar com o VBA, selecione Referência do Desenvolvedor na lista suspensa ao lado de Pesquisar e insira um ou mais termos na caixa de pesquisa.

Este exemplo usa a função CallByName para invocar o método Move de um botão de comando.

O exemplo também usa um formulário (Form1) com um botão (Command1) e um rótulo (Label1). Quando o formulário é carregado, a propriedade Caption do rótulo é definida como o nome do método a ser invocado, nesse caso, "Mover". Quando você clica no botão, a função CallByName invoca o método para alterar o local do botão.

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