Call
Instrução
empregada para transferir o fluxo de execução de um procedimento para outro
procedimento Sub. Function ou API em uma DLL, utilizando esta sintaxe:
[Call] Nome [Argumentos]
Onde,
- Call: argumento opcional que, quando especificado, exige que os argumentos do procedimento Sub ou Function referenciado sejam necessariamente envolvidos entre parênteses;
- Nome: argumento obrigatório, indica o nome do procedimento cujo código deseja-se executar;
- Argumentos: argumento opcional, indica a lista de variáveis delimitadas por vírgulas, que o procedimento espera receber.
As seguintes considerações são válidas para a instrução
Call:
- O uso da instrução Call não é obrigatório, constituindo-se apenas uma questão de estilo de programação ao se executar chamadas a um procedimento no interior de outro (Sub-rotinas);
- Ao se empregar a instrução Call para chamar um procedimento que exige a passagem de argumentos, é obrigatório fornecê-los entre parênteses. Entretanto, quando se efetua uma chamada a um procedimento qualquer sem o emprego de Call, os parênteses deverão ser omitidos, separando-se o primeiro argumento do nome do procedimento por um espaço e os demais argumentos por vírgulas;
- Para passar uma matriz como argumento de um procedimento, o nome da variável contendo a matriz deverá ser sucedido de parênteses vazios;
- Quando Call for emprego para chamar um procedimento API em uma DLL, pode-se empregar as instruções ByVal e ByRef para especificar que os argumentos são passados por valor ou por referência, respectivamente;
- Quando se emprega a instrução Call para se chamar um procedimento Function, o valor retornado por pelo procedimento é descartado.
Exemplo: O exemplo a seguir ilustra a função Call é
empregada para transferir o controle do fluxo de execução do procedimento atual
para um procedimento Sub, cujo único objetivo é fornecer uma mensagem
padronizada de erro. O procedimento Dividir tenta dividir o numerador pelo
denominador. Se o denominador for zero, ou ocorrer um erro de overflow (estouro
de capacidade) a rotina padrão de exibição de erro MsgErro será chamada,
exibindo o erro ocorrido:
Sub MsgErro(intErro as Integer, Optional Procedimento as
String)
Dim strMsg
as string
Dim strTitle as string
StrTitle =
“Erro “ & intErro
If
Len(Procedimento) > 0 Then
StrMsg = strMsg
& “ em “& Procedimento
End If
StrMsg
= Error(Err)
MsgBox
strMsg, vbOK + vbCritical, strTitle
End Sub
Function
Dividir(Numerador As Double, Denominador Y As Double)
On Error
Resume Next
Dividir =
Numerador/Denominador
Dividir_Fim:
Exit Function
Dividir_Erro:
Call
MsgBoxErro(Err, “Função Dividir”)
Resume Dividir_Fim
End
Function
Até a Próxima!!
Nenhum comentário:
Postar um comentário