Uma das funções mais usadas no VBA é a janela de mensagem ou mais conhecida como MsgBox. Essas mensagens são usadas para enviar informações para o usuário final, seja apenas para indicar algo ou para convidá-lo a realizar uma ação. Use a função MsjBox para personalizar todas as mensagens enviadas para usuários finais de aplicativos do Office.
Normalmente, o MsgBox é usado quando um resposta simples por parte do usuário como Aceitar ou Cancelar. São fáceis de fazer e totalmente modificáveis, sendo diferentes para cada ação.
Como usar a função MsgBox para personalizar as mensagens para o usuário
A primeira coisa que você deve saber sobre MsgBox é que são criados através do código do projeto. O código é colocado dentro de um objeto e possui uma sintaxe específica. Felizmente, a sintaxe é bastante direta e você não precisa de mais habilidades de programação.
Sintaxe de um MsgBox
MsgBox (texto [, boton(es)] [, título] [,archivo de ayuda, contexto])
- Mensagem (prompt): é o texto que contém a mensagem que você deseja comunicar ao usuário final.
- Título (título): É opcional e é o texto relacionado ao nome da mensagem. Pode ser útil fornecer uma referência ao usuário que indique o relacionamento da mensagem.
- Botões: Também é opcional e, se não estiver configurado, o botão Aceitar será exibido por padrão. Algumas das constantes que podem ser configuradas para os botões são:
- Arquivo de ajuda (HelpFile): É a sequência de texto que contém a localização do arquivo de ajuda relacionado à mensagem. É opcional, mas caso seja colocado, o Contexto deve ser especificado.
- Contexto (contexto): O valor numérico atribuído ao tópico de ajuda. Está relacionado ao arquivo de ajuda.
Argumento MsgBox
Existem várias maneiras de atribuir valores a um argumento de MsgBox. Uma maneira fácil de fazer isso é usando o nome da constante:
Private Sub CommandButton1_Click ()
text = “Você deseja sair?” ‘mensagem para o usuário
style = vbYesNo + vbCritical + vbDefaultButton2 ‘tipos de botão
title = “MsgBox Test message” ‘título da mensagem
help = “DEMO.HLP” ‘define o arquivo de ajuda
Ctxt = 1000 ‘Defina o tópico de contexto.
Resposta = MsgBox (texto, estilo, título, ajuda, Ctxt) ‘MsgBox enviada ao usuário
If Response = vbYes Then ‘Se o usuário selecionar Sim
lbltexto.Caption = “Excelente” ‘A ação que é executada
Else ‘Se o usuário selecionar não
lbltexto.Caption = “Nada acontece” ‘mensagem de texto que é exibida se o usuário disser não
Fim se
End Sub
No código acima você é atribui a função MsgBox a um botão no formulário. Quando o usuário clica no botão, uma mensagem aparecerá perguntando se ele deseja sair do sistema com dois botões de ação (Sim e Não), um ícone de mensagem crítica.
Se o usuário responder que a palavra “Excelente” será exibida em uma etiqueta e se a resposta for Não, a mensagem exibida é “Nada acontece”.
Outra maneira de exibir o argumento de um MsgBox é colocando o valor de cada constante ou adicionando o valor dos argumentos. A forma anterior é mais simples porque permite interpretar o código a olho nu.
Retorna valores do MsgBox
O importante é determinar que tipo de valor está associado à resposta do usuário, assim como o nome da constante. Dependendo do valor obtido, um ação específica. A imagem a seguir mostra os valores obtidos após pressionar um botão no MsgBox.
Exemplos de MsgBox
Apenas o primeiro argumento (a mensagem ao usuário) é obrigatório, o resto é modificável e opcional.
1. Envie uma mensagem simples para o usuário
Sub privado btnbienvenida_Click ()
MsgBox “Olá, usuário, bem-vindo ao sistema”
End Sub
Quando a ação do botão é executada, um mensagem de boas-vindas ao usuário com o botão Aceitar que é exibido por padrão.
2. Envie uma mensagem ao usuário com botões
Sub privado btncontinuar_Click ()
MsgBox “Deseja continuar?”, VbYesNo + vbExclamation, “Continuar sistema”
End Sub
Este código é mais específico porque a mensagem é mostrada ao usuário, Os botões “Sim” e “Não” são atribuídos, o ícone de exclamação e o título “Continuar sistema”.