MsgBox no Excel: Um Guia Completo

Quer aprender tudo sobre MsgBox no Excel? Então você está no lugar certo!

As caixas de mensagem ou MsgBox no Excel são sempre utilizadas quando desejamos mostrar alguma informação dentro de uma macro, ou seja, ela exibe uma caixa de diálogo com uma mensagem pré-definida, que pode servir para mostrar um erro, confirmar a execução de uma tarefa, entre outras opções.

Para criar a MsgBox no Excel é muito simples, e se você ainda não sabe como fazer, então confira os detalhes a seguir para ficar por dentro desse recurso do VBA no Excel.

Já está interessado(a) no que vem por aí? Então compartilhe com sua rede de amigos para que mais pessoas possam aprender a criar uma MsgBox no Excel.

Facebook

Twitter

LinkedIn

Composição de um MsgBox no Excel

Composição de um MsgBox no Excel

Uma caixa de mensagem é formada pela seguintes partes:

1. Title (Título): Geralmente usado para exibir do que se trata a caixa de mensagem. Se você não especificar nada, ele exibirá o nome do aplicativo – que neste caso é Microsoft Excel.

2. Prompt: Esta é a mensagem que você deseja exibir. Você pode usar este espaço para escrever algumas linhas ou até mesmo exibir tabelas / dados aqui.

3. Button(s) Botão(s): Embora OK seja o botão padrão, você pode personalizá-lo para mostrar botões como Sim/Não, Sim/Não/Cancelar, Tentar novamente/Ignorar, etc.

4. Ícone Fechar: Você pode fechar a caixa de mensagem clicando no ícone Fechar.


Sintaxe da função MsgBox no Excel VBA

Por se tratar de uma função, MsgBox também possui uma sintaxe semelhante a outras funções do VBA.

Sintaxe: MsgBox(prompt [, buttons ] [,title] [, helpfile, context])

Onde:

Prompt: Este é um argumento obrigatório. Ele serve para exibir a mensagem que você verá na MsgBox. No exemplo mostrado acima, texto “Este é um exemplo de MsgBox” é o ‘prompt’.

Você pode usar até 1024 caracteres no prompt e também pode usá-lo para exibir os valores das variáveis. Caso queira mostrar um prompt com várias linhas, você também pode fazer isso (mais detalhes sobre isso posteriormente neste tutorial).

Buttons: Argumento opcional. Determina quais botões e ícones serão exibidos no MsgBox. Por exemplo, se você usar vbOkOnly, ele mostrará apenas o botão OK, e se eu usar vbOKCancel, ele mostrará os botões OK e Cancelar. Abordaremos mais adiante os diferentes tipos de botões.

Title: Argumento opcional. Aqui você pode especificar qual legenda deseja na caixa de diálogo da mensagem. Isso é exibido na barra de título do MsgBox. Se você não especificar nada, ele mostrará o nome do aplicativo.

Helpfile: Argumento opcional. Você pode especificar um arquivo de ajuda que pode ser acessado quando um usuário clica no botão Ajuda. O botão de ajuda aparecerá apenas quando você usar o código do botão para ele. Se você estiver usando um arquivo de ajuda, também precisará especificar o argumento de contexto.

Context: Argumento opcional. Representa uma expressão numérica que é o número do contexto da Ajuda atribuído ao tópico da Ajuda apropriado.

Observação:

Todos os argumentos entre colchetes são opcionais. Apenas o argumento ‘prompt’ é obrigatório.

Se você é novo no conceito de Msgbox, sinta-se à vontade para ignorar os argumentos [Helpfile] e [Context], pois raramente eles são utilizados.


Parâmetros dos botões do MsgBox no Excel

Os botões da MsgBox, como vimos anteriormente são opcionais, entretanto são muito utilizados nas caixas de mensagens. Para cada tipo de botão, existe um parâmetro necessário para que ele apareça nas mensagens. Veja abaixo um exemplo de uma MsgBox com o botão Ok:

Como criar caixa de mensagem no Excel

Quando não se insere o parâmetro ou uma constante para o botão, ele automaticamente será o “Ok”. No entanto, você poderá utilizar também os seguintes parâmetros:

Constante de Botão Descrição
vbOKOnly Mostra apenas o botão OK
vbOKCancel Mostra os botões OK e Cancelar
vbAbortRetryIgnore Mostra os botões Abortar, Repetir e Ignorar
vbYesNo Mostra os botões Sim e Não
vbYesNoCancel Mostra os botões Sim, Não e Cancelar
vbRetryCancel Mostra os botões Repetir e Cancelar
vbMsgBoxHelpButton Mostra o botão Ajuda. Para que isso funcione, você precisa usar os argumentos de ajuda e de contexto na função MsgBox
vbDefaultButton1 Torna o primeiro botão padrão. Você pode alterar o número para alterar o botão padrão. Por exemplo, vbDefaultButton2 torna o segundo botão o padrão

Agora vamos dar uma olhada em alguns exemplos de como os diferentes botões podem ser exibidos em um MsgBox e sua aparência.

Exemplo 1: MsgBox com botão vbOKOnly (padrão)

Se você usar apenas o prompt e não especificar nenhum dos argumentos, então receberá a caixa de mensagem padrão conforme mostrado abaixo:

Caixa de mensagem com botão botão vbOKOnly

Para criar este modelo de caixa de mensagem, utilize o seguinte código VBA:

Sub Exemplo_MsgBox()
MsgBox “Este é um exemplo de Msgbox”
End Sub

Note que o texto da mensagem precisa estar entre aspas duplas.

Você também pode usar a constante de botão vbOKOnly, mas mesmo se você não especificar nada, ela será considerada como padrão.


Exemplo 2: MsgBox com botões OK e Cancelar

Se você deseja apenas mostrar o botão OK e Cancelar, você precisa usar a constante vbOKCancel. Neste caso, o código ficará da seguinte maneira:

Sub Exemplo_MsgBox()
MsgBox “Deseja continuar?”, vbOKCancel
End Sub

MsgBox com botões OK e Cancelar

Exemplo 3: MsgBox com botões Anular, Repetir e Ignorar

Para criar uma caixa de mensagem com os botões Anular, Repetir e Ignorar, basta usar a constante ‘vbAbortRetryIgnore’. Neste caso, o código ficará da seguinte maneira:

Sub Exemplo_MsgBox()
MsgBox “O que você deseja fazer?”, vbAbortRetryIgnore
End Sub

Caixa de mensagem no Excel com botões Anular, Repetir e Ignorar

Exemplo 4: MsgBox com botões Sim e Não

Para criar uma caixa de mensagem com os botões Sim e Não, basta usar a constante  ‘vbYesNo’. Neste caso, o código ficará da seguinte maneira:

Sub Exemplo_MsgBox()
MsgBox “Deseja continuar?”, vbYesNo
End Sub

MsgBox com botões Sim e Não


Exemplo 5: MsgBox com botões Sim, Não e Cancelar

Para criar uma caixa de mensagem com os botões Sim, Não e Cancelar, basta usar a constante  ‘vbYesNoCancel’. Neste caso, o código ficará da seguinte maneira:

Sub Exemplo_MsgBox()
MsgBox “Desejar continuar?”, vbYesNoCancel
End Sub

Como criar uma caixa de mensagem no Excel com botões Sim, Não e Cancelar

Exemplo 6: MsgBox com botões Repetir e Cancelar

Caso queira criar uma caixa de mensagem com os botões Repetir e Cancelar, basta usar a constante  ‘vbRetryCancel’. Neste caso, o código ficará da seguinte maneira:

Sub Exemplo_MsgBox()
MsgBox “O que você deseja fazer a seguir?”, vbRetryCancel
End Sub

MsgBox com botões Repetir e Cancelar

Exemplo 7: MsgBox com botão Ajuda

Caso queira mostrar um botão de Ajuda em sua Caixa de Mensagem, você pode usar a constante ‘vbMsgBoxHelpButton’. Neste caso, o código ficará da seguinte maneira:

Sub Exemplo_MsgBox()
MsgBox “O que você deseja fazer a seguir?”, vbRetryCancel + vbMsgBoxHelpButton
End Sub

Botão de ajuda em Caixa de mensagem no Excel

Note que neste código, combinamos duas constantes de botão diferentes (vbRetryCancel + vbMsgBoxHelpButton). A primeira parte mostra os botões Repetir e Cancelar e a segunda parte mostra o botão Ajuda.


Configurando um Botão Padrão na MsgBox

Você também pode definir o primeiro botão como padrão. Isso significa que o botão já estará selecionado e se você pressionar enter, o botão será executado. Neste caso, basta usar a constante ‘vbDefaultButton1’.

O exemplo abaixo mostra como definir o segundo botão como padrão utilizando a contante ‘vbDefaultButton2.

Sub Exemplo_MsgBox()
MsgBox “O que você deseja fazer a seguir?”, vbYesNoCancel + vbDefaultButton2
End Sub

Como resultado, teremos o botão Não (segundo botão) já selecionado.

Configurando um Botão Padrão

Observação: Geralmente o botão mais à esquerda costuma ser o botão padrão. No entanto, você pode escolher outros botões usando vbDefaultButton2, vbDefaultButton3 e vbDefaultButton4.

Ícones para a MsgBox no Excel

Além dos botões, você também pode personalizar os ícones que são exibidos na caixa de diálogo MsgBox. Por exemplo, você pode ter um ícone crítico vermelho ou um ícone de informação azul.

A tabela abaixo mostra o código que mostrará o ícone correspondente.

Constante Descrição
vbCritical Exibe o ícone de mensagem crítica
vbQuestion Exibe o ícone de pergunta
vbExclamation Exibe o ícone da mensagem de aviso
vbInformation Exibe o ícone de informação

Confira a seguir alguns exemplos para usar ícones em uma MsgBox no Excel.

Exemplo 1: Msgbox com ícone vbCritical

Se você deseja exibir um ícone de alerta crítico em sua Caixa de Mensagem, então basta usar a constante vbCritical. Você pode usá-la junto com outras constantes de botão (colocando um sinal + entre os códigos).

Por exemplo, o código abaixo mostrará o botão OK padrão com um ícone crítico.

Sub Exemplo_MsgBox()
MsgBox “Um erro ocorreu”, vbCritical
End Sub

Msgbox com ícone vbCritical

Em outro exemplo, se você quiser mostrar o ícone crítico com os botões Sim e Não, use o seguinte código.

Sub Exemplo_MsgBox()
MsgBox “Um erro ocorreu. Deseja continuar?”, vbYesNo + vbCritical
End Sub




Exemplo 2: Msgbox com ícone vbQuestion

Se você deseja exibir um ícone de pergunta (interrogação) em sua Caixa de Mensagem, então basta usar a constante vbQuestion. Neste caso, o código será o seguinte:

Sub Exemplo_MsgBox()
MsgBox “Esta é uma mensagem de teste”, vbYesNo + vbQuestion
End Sub

Caixa de mensagem no Excel com ícone vbQuestion

Exemplo 3: Msgbox com ícone vbExclamation

Se você deseja exibir um ícone de exclamação em sua MsgBox no Excel, então basta usar a constante vbExclamation. Neste caso, o código será o seguinte:

Sub Exemplo_MsgBox()
MsgBox “Esta é uma mensagem de teste”, vbYesNo + vbExclamation
End Sub

Msgbox no Excel com ícone vbExclamation

Exemplo 4: Msgbox com ícone vbInformation

Por fim, se você deseja exibir um ícone de informação em sua MsgBox no Excel, então basta usar a constante vbInformation. Neste caso, o código será o seguinte:

Sub Exemplo_MsgBox()
MsgBox “Esta é uma mensagem de teste”, vbYesNo + vbInformation
End Sub

ícone vbInformation em caixa de mensagem no Excel

Título e quebra e linha em Msgbox no Excel

Ao usar o recurso de MsgBox no Excel, você pode personalizar o título e as mensagens de prompt.

Você deve ter notado que até o momento, todos os exemplos que apresentados usaram o Microsoft Excel como título. Caso você não especifique o argumento title, a MsgBox usará automaticamente o título do aplicativo (que neste caso é o Microsoft Excel).

Você pode personalizar o título especificando-o no código conforme exemplo mostrado abaixo:

Sub Exemplo_MsgBox()
MsgBox “Deseja continuar?”, vbYesNo + vbQuestion, “Etapa 1 de 3”
End Sub

Msgbox no Excel com título

Você também pode inserir quebras de linha na mensagem de prompt da sua MsgBox. No exemplo abaixo, adicionamos uma quebra de linha usando ‘vbNewLine

Sub MsgBoxInformationIcon()
MsgBox “Deseja continuar?” & vbNewLine & “Clique em Sim para continuar”, vbYesNo + vbQuestion, “Etapa 1 de 3”
End Sub

Quebra em linha em msgbox no Excel

Observação: Você poderá adicionar uma nova linha apenas à mensagem de prompt e não ao título.

Atribuindo o Valor da MsgBox a uma Variável

Até agora, vimos os exemplos em que criamos caixas de mensagens e personalizamos os botões, ícones, título e prompt. No entanto, você deve ter notado que ao clicar em um botão, nenhuma ação é realizada.

Com a função MsgBox no Excel, você pode decidir o que deseja fazer quando um usuário clica em um botão específico. E isso é possível porque cada botão tem um valor associado.

Deste modo, se o usuário clicar no botão Sim, a função MsgBox retorna um valor (6 ou a constante vbSim) que você poderá usar em seu código. Da mesma forma, se o usuário selecionar o botão Não, ele retornará um valor diferente ((7 ou a constante vbNo)) que você poderá usar no código.

Abaixo está uma tabela que mostra os valores exatos e a constante retornada pela função MsgBox. Você não precisa memorizá-los, apenas esteja ciente disso e você poderá usar as constantes que são mais fáceis de usar.

Botão clicado Constante Valor
OK vbOk 1
Cancelar vbCancel 2
Anular vbAbort 3
Repetir vbRetry 4
Ignorar vbIgnore 5
Sim vbYes 6
Não vbNo 7

Agora vamos ver como podemos controlar o código de macro VBA com base no botão em que o usuário clica.

No código abaixo, se o usuário clicar em Sim, ele exibe a mensagem “Você Clicou em Sim”, e se o usuário clicar em Não, ele exibe “Você Clicou em Não”.

Sub MsgBoxInformationIcon()
Resultado = MsgBox(“Deseja continuar?”, vbYesNo + vbQuestion)
If Resultado = vbYes Then
MsgBox “Você clicou em Sim”
Else: MsgBox “Você clicou em Não”
End If
End Sub

Exemplo caixa de mensagem no Excel

No código acima, atribuí o valor da função MsgBox à variável Resultado. Quando você clica no botão Sim, a variável Resultado obtém a constante vbYes (ou o número 6) e quando você clica em Não, a variável Resultado obtém a constante vbNo (ou o número 7).

Em seguida, usamos a lógico de If Then Else para verificar se a variável Resultado contém o valor vbYes. Em caso positivo, ele mostra o prompt “Você clicou em Sim”, caso contrário, mostra “Você clicou em Não”.

Você pode usar o mesmo conceito para executar um código se um usuário clicar em Sim e sair do sub quando clicar em Não.

Importante: Ao atribuir a saída MsgBox a uma variável, você precisa colocar os argumentos da função MsgBox entre parênteses. Por exemplo, na linha Resultado = MsgBox (“Deseja continuar?”, VbYesNo + vbQuestion) , você pode ver que os argumentos estão entre parênteses.


Exemplo Prático de MsgBox no Excel

Para entendermos melhor como utilizar a MsgBox no Excel, separamos alguns exemplos práticos. Vejamos:

1º Exemplo: Caixa de mensagem básica

Para o primeiro exemplo, vamos utilizar uma simples planilha onde existe uma macro para cadastro e ao final, quando o botão cadastrar for clicado, precisamos que apareça uma MsgBox com a seguinte mensagem: “Cadastro Salvo com Sucesso”.

Neste caso, ao final da macro inserimos a função MsgBox com a mensagem, como no exemplo:

Sub Cadastro()

Range(“A2:B5”).Select
Application.CutCopyMode = False
Selection.Copy Sheets(“Plan3”).Select
Range(“A2”).Select ActiveSheet.Paste
Sheets(“Plan2”).Select Range(“A1”).Select
MsgBox “Cadastro Salvo com Sucesso”, , “Cadastro”

End Sub

Agora ao clicar no botão “Cadastrar” a mensagem irá aparecer, veja:

MsgBox VBA Excel

 

2º Exemplo: Título na caixa de mensagem

Para mudarmos o título na caixa de mensagem, utilizaremos a MsgBox da seguinte maneira:

Sub Cadastro() Range(“A2:B5”).Select
Application.CutCopyMode = False
Selection.Copy Sheets(“Plan3”).Select
Range(“A2”).Select ActiveSheet.Paste
Sheets(“Plan2”).Select Range(“A1”).Select
MsgBox “Cadastro Salvo com Sucesso”, , “Cadastro”
End Sub

Assim, a caixa de mensagem aparecerá com o título escolhido, neste caso, “Cadastro”.

Exemplo caixa de mensagem

3º Exemplo: Caixa de mensagem crítica

A caixa de mensagem crítica, é utilizada para alertar que algo está errado, para este exemplo a MsgBox ficará como na imagem abaixo:

Sub Exemplo_MsgBox()

resultado = MsgBox(“Erro crítico encontrado”, vbAbordRetryIgnore + vbCritical, “Mensagem de Erro”)

End Sub

Veja como a mensagem irá aparecer após executar a macro:

Caixa de Mensagem no Excel

Você também poderá gostar das seguintes dicas de Excel:

E então, o que achou da dica sobre como criar MsgBox no Excel? Deixe o seu comentário abaixo, gostaríamos muito de conhecer a sua opinião! Para conferir mais dicas de Excel, continue acompanhando o Excel Easy!