Executa um método de um objeto, define ou devolve uma propriedade de um objeto.
Sintaxe
CallByName ( object , procname, calltype [, args()])
A sintaxe da função CallByName tem estes argumentos:
|
Argumento |
Descrição |
|
objeto |
Obrigatório. Variante (Objeto). O nome do objeto no qual a função será executada. |
|
procname |
Obrigatório. Variante (Cadeia). Uma expressão de cadeia que contém o nome de uma propriedade ou método do objeto. |
|
tipo de chamada |
Obrigatório. Constante. Uma constante do tipo vbCallType que representa o tipo de procedimento que está a ser chamado. |
|
args () |
Opcional. Variante (Matriz). |
Comentários
A função CallByName é utilizada para obter ou definir uma propriedade ou para invocar um método no tempo de execução com um nome de cadeia.
No exemplo seguinte, a primeira linha utiliza 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 Mover para mover a caixa de texto:
CallByName Text1, "MousePointer", vbLet, vbCrosshairResult = CallByName (Text1, "MousePointer", vbGet)CallByName Text1, "Move", vbMethod, 100, 100
Exemplo
Observação: Os exemplos que se seguem demonstram a utilização desta função num módulo VBA (Visual Basic for Applications). Para obter mais informações sobre como trabalhar com o VBA, selecione Referência do Programador na lista pendente junto a Procurar e introduza um ou mais termos na caixa de pesquisa.
Este exemplo utiliza a função CallByName para invocar o método Mover de um botão de comando.
O exemplo também utiliza um formulário (Form1) com um botão (Command1) e uma etiqueta (Label1). Quando o formulário é carregado, a propriedade Legenda da etiqueta é definida como o nome do método a invocar, neste caso, "Mover". Quando clica no botão, a função CallByName invoca o método para alterar a localização do botão.
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