Quando você cria macros no Excel, muitas vezes precisa interagir com o usuário: exibir uma mensagem, pedir uma confirmação antes de executar uma ação, ou solicitar que o usuário informe um valor. Para isso, o VBA tem duas funções fundamentais: o MsgBox e o InputBox. Neste artigo iremos mostrar como usar essas duas funções com exemplos práticos e prontos para usar nas suas macros.
O que é o MsgBox?
O MsgBox é uma função do VBA que exibe uma caixa de diálogo com uma mensagem para o usuário. Pode ser usada simplesmente para informar algo, como “O processo foi concluído com sucesso!”, ou para fazer uma pergunta e capturar a resposta do usuário, como “Deseja continuar?”.
MsgBox simples: apenas exibindo uma mensagem
Na sua forma mais básica, o MsgBox exibe uma mensagem e tem apenas um botão OK:
Sub ExibirMensagem()
MsgBox "O processo foi concluído com sucesso!"
End Sub
Quando essa macro for executada, uma janela vai aparecer com a mensagem e um botão OK. O código continua após o usuário clicar em OK.
MsgBox com título personalizado
Por padrão, o título da caixa de mensagem é o nome do projeto VBA. Para definir um título personalizado, use o segundo e o terceiro parâmetros do MsgBox:
MsgBox "O processo foi concluído com sucesso!", vbInformation, "Minha Planilha"
O segundo parâmetro (vbInformation) define o ícone exibido. As opções mais comuns são:
- vbInformation: ícone de informação (letra i azul)
- vbExclamation: ícone de aviso (ponto de exclamação amarelo)
- vbCritical: ícone de erro (X vermelho)
- vbQuestion: ícone de pergunta (ponto de interrogação)
MsgBox com botões de confirmação
Para fazer uma pergunta ao usuário e capturar a resposta, use o MsgBox com os botões Sim e Não:
Sub ConfirmarAcao()
Dim resposta As Integer
resposta = MsgBox("Deseja excluir os dados selecionados?", vbYesNo + vbQuestion, "Confirmação")
If resposta = vbYes Then
MsgBox "Dados excluídos com sucesso!"
Else
MsgBox "Operação cancelada."
End If
End Sub
O MsgBox retorna um número que representa o botão clicado pelo usuário. As constantes mais usadas são:
- vbYes: o usuário clicou em Sim
- vbNo: o usuário clicou em Não
- vbOK: o usuário clicou em OK
- vbCancel: o usuário clicou em Cancelar
O que é o InputBox?
O InputBox é uma função do VBA que exibe uma caixa de diálogo com um campo de texto onde o usuário pode digitar um valor. Esse valor é então capturado pela macro e pode ser usado em cálculos, buscas ou qualquer outra ação.
InputBox básico
O uso básico do InputBox é o seguinte:
Sub SolicitarNome()
Dim nome As String
nome = InputBox("Digite o seu nome:", "Identificação")
MsgBox "Olá, " & nome & "! Seja bem-vindo."
End Sub
O primeiro parâmetro é a mensagem exibida para o usuário e o segundo é o título da janela. O valor digitado pelo usuário é retornado como texto e armazenado na variável nome.
InputBox com valor padrão
Você pode definir um valor padrão que já aparece preenchido no campo do InputBox, facilitando a vida do usuário quando há um valor mais comum a ser digitado:
Dim mes As String
mes = InputBox("Digite o mês para o relatório:", "Relatório Mensal", "Janeiro")
O terceiro parâmetro é o valor padrão. Se o usuário não mudar nada e clicar em OK, a variável vai receber “Janeiro”.
Tratando o cancelamento do InputBox
Quando o usuário clica em Cancelar no InputBox, a função retorna uma string vazia. Sempre verifique se o usuário cancelou antes de usar o valor retornado:
Sub BuscarDado()
Dim codigo As String
codigo = InputBox("Digite o código do produto:", "Busca")
If codigo = "" Then
MsgBox "Operação cancelada.", vbExclamation, "Aviso"
Exit Sub
End If
' continua o processamento com o código informado
MsgBox "Buscando o produto: " & codigo
End Sub
Combinando MsgBox e InputBox em macros profissionais
Na prática, o MsgBox e o InputBox são usados juntos para criar macros mais seguras e amigáveis. Antes de executar ações importantes, use o MsgBox para confirmar com o usuário. Use o InputBox para solicitar parâmetros dinâmicos, como o mês do relatório ou o nome do cliente a ser buscado. Depois da execução, use o MsgBox para confirmar que tudo correu bem.
Essa combinação transforma macros simples em ferramentas que qualquer pessoa consegue usar com facilidade, mesmo sem saber nada de VBA.
Se você curtiu esse artigo onde mostramos como usar MsgBox e InputBox no VBA do Excel, compartilhe com as suas redes sociais e não se esqueça de deixar um comentário aqui embaixo caso você tenha ficado com alguma dúvida.