NOTA= Um procedimento é um bloco de código que pode ser chamado em qualquer ponto do Módulo. Ao chamarmos um procedimento, a execução é deslocada para dentro do procedimento. Após concluído o procedimento, a execução segue com a linha seguinte à que chamou o procedimento. Veremos maiores detalhes sobre procedimentos e funções nas próximas partes deste tutorial.Escopo de Módulo: Uma variável declarada dentro de um Múdulo de código VBA, mas fora de qualquer Procedimento (ou seja, na seção Geral do módulo). Com isso a variável pode ser utilizada dentro de qualquer bloco de código do Módulo, inclusive dentro dos Procedimentos e funções do módulo. Uma variável declarada em nível de Módulo, existe enquanto o Módulo estiver sendo executado. São as variáveis declaradas na seção de Declarações do Módulo. Uma variável declarada em nível de Módulo, poderá ser utilizada em todos os procedimentos/funções do módulo.
Escopo de procedimento: A variável somente pode ser utilizada, dentro do procedimento onde esta é declarada. Se tentarmos utilizar a variável fora do procedimento, onde a ela foi declarada, não teremos acesso a ela. Uma variável declarada em nível de procedimento, existe enquanto o procedimento estiver sendo executado.
Com esse exemplo, foi possível verificar, na prática, o conceito de escopo (algumas vezes chamado de visibilidade) das variáveis. Nas próximas partes do tutorial, tratarei das Estruturas e laços de controle, que são elementos muito importantes na criação de rotinas em VBA.Abra o banco de dados nwind.mdb que está na pasta Semana2.
Vá para o modo estrutura do formulário Teste.
Crie um botão de comando com o nome de ExEscopo.
Associe o seguinte código ao evento Ao Clicar, deste botão de comando:
Dim a,b As Integer
x=10
x=20
Call proc1
' Agora vamos tentar utilizar os valores de a e b
' Fora do procedimento proc1.
' Observe que a variável aux1 não é calculada
' corretamente, uma vez que os valores de a e b
' não estão disponíveis, fora do procedimento proc1
Aux1 = a + b
MsgBox "aux1= " & Aux1
O comando Call faz o chamado ao procedimento proc1. Este procedimento deve ser definido no mesmo módulo, caso contrário um erro será gerado. Ao encontrar esse comando o Access desloca a execução para o procedimento proc1, executa os comandos deste procedimento e após encerrar continua a execução a partir do comando seguinte ao comando Call.
Vá para a seção de Declarações do módulo e declare as seguintes variávies:
Dim x, y,aux1 As Integer
Para deslocar-se, rapidamente para a seção de Declarações, utilize a lista indicada na figura a seguir. Nesta lista selecione a opção (Geral).
Agora vamos criar o procedimento proc1, procedimento este que é chamado no evento Ao clicar do botão ExEscopo.
Vá para o final do módulo e digite o seguinte código:
' Agora vamos criar um procedimento
' E declarar duas variáveis dentro deste procedimento.
' Estas variáveis somente serão visíveis somente,
' dentro deste procedimento.
Sub proc1()
Dim a, b
a=5
b=7
MsgBox "x= " & x & " y= " & y & " a= " & a & " b= " & b
End Sub
Feche o Ambiente de Desenvolvimento.
Vá para o modo formulário.
Dê um clique no botão ExEscopo.
Será exibida a janela indicada na Figura a seguir:
Dê um clique no botão OK. Será exibida a janela indicada na figura a seguir:
Observe que o valor da variável aux1 (foi calculado incorretamente), pois a variável aux1 depende dos valores de "a" e "b". Como as variáveis a e b foram declaradas dentro do procedimento proc1, elas não podem ser acessadas fora do procedimento proc1, ou seja, após a execução do procedimento ter sido encerrada.
Dê um clique no botão OK.
Mantenha o formulário Teste aberto.
Vá para o modo Estrutura do formulário Teste.
Universidade do Access - Curso Completo de Access
com tudo para você dominar o Access - do Básico ao
Avançado - até a Criação de Sistemas Profissionais
Completos - Passo a Passo - Tela a Tela
Aplica-se ao Access 2019, 2016, 2013 e 2010!
Para todos os detalhes, acesse:
Contato: Telefone: (51) 3717-3796 | E-mail: webmaster@juliobattisti.com.br | Whatsapp: (51) 99627-3434
Júlio Battisti Livros e Cursos Ltda | CNPJ: 08.916.484/0001-25 | Rua Vereador Ivo Cláudio Weigel, 537 - Universitário, Santa Cruz do Sul/RS, CEP: 96816-208
Todos os direitos reservados, Júlio Battisti 2001-2025 ®
LIVRO: MACROS E PROGRAMAÇÃO VBA NO EXCEL 2016 - CURSO COMPLETO E PRÁTICO
DOMINE A PROGRAMAÇÃO VBA NO EXCEL - 878 PÁGINAS - CLIQUE AQUI