VBA no Excel: Definir o âmbito de uma variável - Exceldriven

Neste artigo vais aprender a definir o âmbito de uma variável (VBA) no Microsoft Excel. Vamos lá?

Uma variável em VBA permite-nos armazenar um valor que pode mudar ao longo de uma rotina, e ao qual atribuímos um nome e um tipo de dados. Por exemplo, uma string (texto) ou um valor numérico (integer).



Quando executamos código VBA, a variável é normalmente definida no âmbito da rotina que estamos a executar. Significa que o valor armazenado está apenas disponível enquanto essa rotina está a ser executada. Caso tenhamos necessidade de utilizar esse mesmo valor noutra rotina, ou até mesmo noutro módulo, não será possível. Para tal acontecer, temos que alterar o âmbito de aplicação da variável, de modo a podermos utilizar o valor noutras rotinas ou módulos.

Não percas aqui todo o processo passo-a-passo e aprende a definir o âmbito de uma variável (VBA) no Microsoft Excel. Alguma dúvida envia-nos a tua mensagem... ficamos à tua espera!

Passo 1: Definir a variável no âmbito da rotina.

Vamos iniciar a criação de um módulo com uma variável simples que permite guardar os anos do utilizador.

Começamos por iniciar um novo módulo dentro do Visual Basic Editor, que pode ser executado com o atalho [ALT] + [F11].

img_01.jpgDe seguida vamos criar 2 sub-rotinas:

uma para definir a Idade, que terá a variável e que é armazenada numa Inputbox para o utilizador colocar um valor.

A segunda sub-rotina terá apenas uma caixa de mensagem MsgBox que deverá apresentar a idade colocada pelo utilizador na rotina inicial.

Sub ColocarIdade()

    Dim idade as integer

    idade = InputBox("Introduza a sua idade!")

    MensagemIdade

End Sub


Sub MensagemIdade()

    MsgBox Prompt:="A sua idade é: " & idade & " anos"

End Sub

Executando as duas rotinas, a variável idade apresenta um erro que indica que a variável não está definida.

img_02.jpgIsto significa que o âmbito da variável está definido apenas ao nível da primeira rotina, e a mesma só pode ser guardada na rotina inicial. Quando chamada na segunda rotina, esta não é reconhecida.

Passo 2: Definir a variável no âmbito do módulo.

Caso a variável seja definida no âmbito do módulo, todas as rotinas presentes no mesmo módulo podem utilizar a variável e o seu valor guardado. Obviamente esta lógica de implementação de variáveis terá vantagens ou desvantagens conforme a preferência do utilizador. Contudo caso pretenda aceder ao valor guardado, este deverá ser o procedimento.

Para definir a variável no âmbito do módulo, basta defini-la com a expressão Dim antes de qualquer rotina do módulo, ou seja, no início do módulo.

Option Explicit

Dim idade As Integer


Sub ColocarIdade()

    idade = InputBox("Introduza a sua idade!")

    MensagemIdade

End Sub


Sub MensagemIdade()

    MsgBox Prompt:="A sua idade é: " & idade & " anos"

End Sub

Executando a primeira rotina, é solicitada a idade do utilizador.

img_03.jpgApós colocação da idade o valor é armazenado na variável. Quando passamos para o novo módulo “MensagemIdade” os valores mantêm-se e é apresentado sobre a forma de uma Caixa de Mensagem MsgBox.

img_04.jpgPasso 3: Definir a variável como pública.

Quando definimos a variável com a expressão Public significa que o seu valor é armazenado e fica disponível em vários módulos no mesmo ficheiro.

Option Explicit

Public idade As Integer

Desta forma podemos então criar outro módulo. Neste novo módulo vamos criar uma nova rotina, que irá apresentar sobre a forma de uma Caixa de Mensagem - MsgBox, na qual será apresentada a data de aniversário e será adicionado 1 ano ao valor da variável inicial.

Sub Aniversario()

    MsgBox "A 16 de outubro a sua idade será: " & idade + 1 & " anos"

End Sub

Para terminar a aplicação final será composta por 3 rotinas:

  1. Rotina que armazena o valor da variável idade, agora pública.
  2. Rotina que mostra o valor da variável idade numa Caixa de Mensagem
  3. Rotina que mostra o valor da variável idade mais um ano, numa Caixa de mensagem.

Módulo 1 

Option Explicit

Public idade As Integer

Sub ColocarIdade()

    idade = InputBox("Introduza a sua idade!")

    MensagemIdade

End Sub


Sub MensagemIdade()

    MsgBox Prompt:="A sua idade é: " & idade & " anos"

    Aniversario

End Sub

Módulo 2

Option Explicit

Sub Aniversario()

    MsgBox "A 16 de outubro a sua idade será: " & idade + 1 & " anos"

End Sub

Consulte outros conteúdos relevantes:

VBA e função FILTRAR: Exportar um relatório para PDF

VBA e função FILTRAR: Exportar um relatório para PDF

Neste novo vídeo, vou mostrar-te como podes usar a função FILTRAR para obter um conjunto de dados sobre um determinado critério.

Continuar a ler...

Envie emails personalizados no Microsoft Excel, com VBA?!

Envie emails personalizados no Microsoft Excel, com VBA?!

Perde muito tempo a enviar emails personalizados com anexos para uma lista de emails? Então saiba que existe uma forma fácil...

Continuar a ler...

 

Pesquisar


Consulte aqui os últimos artigos publicados no nosso blog!

Aceda aqui ao nosso blog!


Consulte aqui os últimos vídeos publicados no nosso canal do Youtube!

Aceda aqui ao nosso arquivo!

Assista, ouça, pratique e aprenda!

Na nossa oferta, disponibilizamos cursos intensivos que lhe dão um conhecimento alargado dos programas, dependendo dos seus objetivos e nível de conhecimento. Para além disso, dispomos também de cursos on-demand que tem, entre outros aspetos, têm como principal objetivo ajudá-lo a resolver problemas específicos do dia-a-dia, sem ter necessidade de assistir a um curso completo.

Aprenda a maximizar o seu tempo e aumente a sua produtividade com a ferramenta mais utilizada em todo o mundo – o Microsoft Excel! Conheça a nossa oferta formação especializada e Ferramentas de Business Intelligence! Vamos lá?!

Microsoft Excel

Fique a conhecer as principais funcionalidades do Microsoft Excel, e ser autónomo no seu trabalho, temos um conjunto de cursos que o podem ajudar a chegar ao seu objetivo!

Veja aqui aos cursos disponíveis!

Business Intelligence

Passe ao próximo nível e conheça a nossa oferta de cursos especializados utilizando as potencialidades de Business Intelligence do Microsoft Excel, ou utilizando o Power Bi Desktop.

Veja aqui os cursos disponíveis!

VBA (Visual Basic for Applications)

Estenda as capacidades do Microsoft Excel, e controle quase a totalidade dos aspetos da aplicação, utilizando o VBA! Uma linguagem de programação à disposição de todos os utilizadores.

Veja aqui os cursos disponíveis!

Subscreva as nossas notícias e novidades!

Tem uma dúvida que gostava de ver esclarecida?

Contacte-nos através do seguinte formulário.

Pretendemos ajudá-lo a trabalhar, de forma eficiente, o Microsoft Excel e as Ferramentas Power Platform (Power BI, Power Apps e Power Automate).

O que pretendemos é que possa economizar tempo e aumentar a sua produtividade.

A nossa solução... uma oferta formativa de qualidade e em diversos modelos formativos, com conteúdos práticos, disruptivos e inovadores!

Consulte aqui todas as modalidades, ou contacte-nos para receber mais informações. Basta utilizar o formulário aqui disponível, ou o email geral@exceldriven.com. Até breve!

O que os nossos clientes dizem sobre nós?

Depoímentos

Boa tarde, Dou 5 estrelas pois o método de ensino é espetacular, as lições são muito bem sumarizadas, a interação entre o formador e o formando é eficaz possibilitando maior assimilação da matéria, e com o espaço para a resolução de exercícios tornam as aulas mais dinâmicas e proveitosas.
Yara Agostinho -

Excelente apresentação e organização da Formação em Excel Avançado
Balbina Zambujo -

Excelente empresa a nível de formação. De realçar o formador Joao Teixeira, profissional 5 estrelas.
Bruno Matos -

Tive uma formação de excel fundamental via zoom e, apesar das limitações apresentadas por ser uma formação online, foi ministrada com grande êxito, tendo tido pleno aproveitamento.
Patricia Martins -

Excelente formação, com conteúdos didáticos e exercícios adaptados ao nível dos formandos. Recomendo!
Pramod Maugi -

Excelente instrutor, muito bons treinamentos e aquisição de conhecimentos.
Eunice Ramalho -

O formador João Teixeira consegue tornar um assunto à partida monótono, em algo desafiante e cativante. Gostei imenso!
Maria Flores Macedo -

Formação muito bem organizada e focada para as nossas necessidades. Recomendo.
Pedro Gomes -

Os conteúdos são muito bem explicados. As dúvidas dissipadas em curto espaço de tempo.
Rui Filipe -