Vector Machine

Como usar caixa de mensagem MsgBox no VBA?

Neste post vou explicar um pouco como utilizar a função de caixa de mensagem MsgBox no VBA. Esta função serve para exibir uma caixa de diálogo na tela, onde o sistema aguardará uma interação do usuário para continuar a execução do programa.

Sintaxe

A sintaxe para execução da função é bem simples:

VBA.MsgBox(prompt, [ botões ], [ título ], [ arquivo de ajuda, contexto ])

O único parâmetro que é obrigatório é o prompt, que é o texto que será exibido na caixa de mensagem. Os demais parâmetros, vamos detalhar mais pra frente.
Vamos começar!

Usando o MsgBox

Primeiramente você deverá abrir o editor do VBA para que possamos inserir nosso código. Temos um post aqui no blog ensinando como inserir um módulo e colocar o código.

Com o editor aberto, vamos ao código. O objetivo será colocar uma condicional onde, dependendo da resposta do usuário, o programa segue um caminho ou outro.

O código está abaixo:

Resultado


Ao executar o código, caso o usuário clique em “Sim”, será exibido uma mensagem, caso clique em “Não”, será exibida uma mensagem diferente.

Explicando

 

Veja que, para cada mensagem exibida, temos um formato de escrita da mensagem diferente, e isso foi proposital. As diferenças são:

vbYesNo – Utilizado na primeira mensagem, serve para exibir os botões “Sim” e “Não”.



vbInformation – Utilizado para exibir o ícone de informação, com um botão “OK”.



vbCritical – Utilizado para exibir o ícone de mensagem crítica. Geralmente utilizado para exibir mensagens de erro.

Existem diversas opções para uso nesta opção de botões, vou deixar uma lista abaixo e você pode testar cada uma delas:

vbOKOnly –> Exibe apenas o botão OK.
vbOKCancel –> Exibe os botões OK e Cancelar.
vbAbortRetryIgnore –> Exibe os botões Abortar, Repetir e Ignorar.
vbYesNoCancel –> Exibe os botões Sim, Não e Cancelar.
vbYesNo –> Exibe os botões Sim e Não.
vbRetryCancel –> Exibir os botões Repetir e Cancelar.
vbCritical –> Exibe o ícone Mensagem Crítica.
vbQuestion –> Exibe o ícone Consulta de Aviso.
vbExclamation –> Exibe o ícone Mensagem de Aviso.
vbInformation –> Exibe o ícone Mensagem Informativa.
vbDefaultButton1 –> O primeiro botão é o padrão
vbDefaultButton2 –> O segundo botão é o padrão
vbDefaultButton3 –> O terceiro botão é o padrão
vbDefaultButton4 –> O quarto botão é o padrão
vbApplicationModal –> Aplicativo modal; o usuário deve responder à caixa de mensagem antes de continuar trabalhando no aplicativo atual.
vbSystemModal –> Sistema modal; todos os aplicativos são suspensos até que o usuário responda à caixa de mensagem.

vbMsgBoxHelpButton –> Adiciona o botão Ajuda à caixa de mensagem.
vbMsgBoxSetForeground –> Especifica a janela de caixa de mensagem como janela em primeiro plano.
vbMsgBoxRight –> O texto é alinhado à direita.
vbMsgBoxRtlReading –> Especifica que o texto deve ser lido da direita para a esquerda nos sistemas árabe e hebraico.

Dica Extra!!!

Imagine uma aplicação grande, com umas 50 mensagens distribuídas no seu projeto, e surge a necessidade de alterar o título das mensagens, imagina o trabalho que vai dar para entrar em mensagem por mensagem para alterar o título, sem contar o risco de esquecer alguma mensagem ou digitar algo errado.

Para mitigar este tipo de problema, eu costumo usar duas formas simples. A primeira é criar uma função, passando como parâmetro o prompt e o botão, e a segunda, que é a que eu mais utilizo, é criar uma constante com o texto do título e usar esta constante nas mensagens. Veja um exemplo abaixo:

Dica Extra (2)!!!

Olhando o código acima, você poderá notar uma combinação de dois parâmetros vbQuestion + vbYesNo. Isso mostra que é possível combinar os parâmetros para, por exemplo, exibir o ícone de informação ou de questão e incluir também as opções “Sim” e “Não”. Façam os testes combinando os parâmetros! 🙂

Fico por aqui e até a próxima!

  • Últimos Posts

  • Categorias

  • Arquivo

  • Tags