Como criar funções de caixa de mensagem no excel?

A primeira coisa que aprendi sobre VBA foi como usar uma caixa de mensagem (“função msgbox”). É como uma simples caixa pop-up na janela do Excel para exibir uma mensagem específica. Se você pensar bem, poderá usá-lo de duas maneiras.

  • Entregue uma mensagem ao usuário.
  • Obtenha uma resposta simples do usuário.

A maioria dos programadores VBA o utilizam em seus códigos de macro para torná-los mais interativos e se você não conhece, aposto que depois de ler este artigo você vai se apaixonar por ele.

Dica do especialista: Se você é iniciante em VBA, pode ser uma boa ideia aprender mais sobre a caixa de mensagens do VBA.

Então, hoje neste artigo gostaria de compartilhar com vocês todos os detalhes sobre o uso de uma caixa de mensagem no Excel e alguns exemplos do mundo real.

…Vamos começar.

Sintaxe

=MSGBOX(prompt, [botões], [título], [arquivo de ajuda, contexto])

sintaxe da função msgbox vba

  • prompt Expressão de string usada para exibir como uma mensagem. O comprimento máximo de caracteres é 1024, que depende da largura dos caracteres.
  • [botões] Você pode usar este argumento para especificar botões, estilo de ícone, identidade de botão e modalidade de caixa de mensagem.
  • [título] Você pode usar este argumento para especificar o texto do título para sua caixa de mensagem.
  • [helpfile] Este argumento o ajudará a especificar um arquivo de ajuda para o usuário. O usuário pode acessar este arquivo de ajuda usando o botão de ajuda. Se você especificar um arquivo de ajuda, será obrigatório especificar um número de contexto.
  • [contexto] Expressão numérica usada para atribuir um tópico de ajuda no menu de ajuda.

Nota: Na lista acima, os argumentos acima que estão entre colchetes são opcionais, você pode pular para especificá-los.

Como personalizar uma caixa de mensagem e usar botões diferentes

Você pode personalizar facilmente uma caixa de mensagem VBA com todas as opções disponíveis. Vamos dar uma olhada nessas opções.

#1. vbOKOnly

Isso fornece um simples botão OK. O usuário pode clicar nele após ler a mensagem para fechá-la. Além disso, você também pode usar uma macro para executar quando o botão OK for clicado.

Em OKOnly()

Prompt de MsgBox: = “Esta é uma MsgBox”, _

Botões:=vbOKSomente, _

Título: = “Caixa de correio”

Finalizando a legenda

#2. vbOKCancel

Essa constante fornece um botão OK e cancelar. O usuário agora tem duas opções: pressionar OK para continuar ou cancelar para sair.

Em OKCancel()

Prompt da MsgBox:= »Você está bem? », _

Botões:=vbOKCancelar, _

Título: = “Caixa de correio”

Finalizando a legenda

#3. vbAbortRetryIgnore

Isso permite que você exiba três botões para Sobre, Tentar novamente e Ignorar. O usuário pode abortar a operação, tentar novamente ou ignorá-la.

Em OKCancel()

Prompt da MsgBox:= »Você está bem? », _

Botões:=vbOKCancelar, _

Título: = “Caixa de correio”

Finalizando a legenda

#4. vbSimNãoCancelar

Esta constante exibe três botões para Sim, Não e Cancelar. O usuário pode Sim para aceitar e continuar, Não para rejeitar ou cancelar para fechar a caixa de mensagem.

Em SimNãoCancelar()

Prompt MsgBox := “Agora você tem três botões”, _

Botões:=vbSimNãoCancelar, _

Título: = “Caixa de correio”

Finalizando a legenda

#5. vbSimNão

Esta constante exibe dois botões para Sim e Não. O usuário pode clicar em Sim para aceitar e continuar ou em Não para rejeitar.

Em SimNão()

Prompt MsgBox := “Agora você tem dois botões”, _

Botões:=vbSimNão, _

Título: = “Caixa de correio”

Finalizando a legenda

#6. vbRetryCancel

Agora mostra dois botões, tentar novamente e cancelar. Você pode usá-lo para solicitar ao usuário que tente novamente a operação ou cancele-a.

Sub RetryCancel() Prompt de MsgBox:=”Tente novamente”, _Buttons:=vbRetryCancel, _Title:=”MsgBox”End Sub

#7. vbRevisão

Esta constante exibe um ícone na caixa de mensagem, indicando que a mensagem é crítica.

Subcrítico()

Prompt de MsgBox: = “Isso é crítico”, _

Botões:=vbCrítico, _

Título: = “Caixa de correio”

Finalizando a legenda

#8. vbPergunta

Esta constante pode ser usada ao fazer uma pergunta ao usuário.

Subquestão()

Prompt de MsgBox := »O que fazer agora? », _

Botões:=vbPergunta, _

Título: = “Caixa de correio”

Finalizando a legenda

#9. vbExclamação

Esta constante exibirá um ícone de exclamação com a mensagem.

SobExclamação()

Prompt de MsgBox := »O que fazer agora? », _

Botões:=vbExclamação, _

Título: = “Caixa de correio”

Finalizando a legenda

#dez. vbInformações

Ele exibirá um ícone indicando que a mensagem é informativa.

Sub Information() Prompt de MsgBox:=”O que fazer agora?”, _Buttons:=vbInformation, _Title:=”MsgBox”End Sub

#11. vbDefaultButton1

Use esta constante para especificar o primeiro botão na sua caixa de mensagem como o botão padrão.

Sub DefaultButton1() Prompt de MsgBox:=”Button1 está destacado?”, _Buttons:=vbYesNoCancel + vbMsgBoxHelpButton + vbDefaultButton1, _Title:=”MsgBox”End Sub

#12. vbDefaultButton2

Use esta constante para especificar o segundo botão na sua caixa de mensagem como o botão padrão.

Sub DefaultButton2() Prompt de MsgBox:=”Button2 está destacado?”, _Buttons:=vbYesNoCancel + vbMsgBoxHelpButton + vbDefaultButton2, _Title:=”MsgBox”End Sub

#13. vbDefaultButton3

Use esta constante para especificar o terceiro botão em sua msgbox como o botão padrão.

Sub DefaultButton3() Prompt de MsgBox:=”Button3 está destacado?”, _Buttons:=vbYesNoCancel + vbMsgBoxHelpButton + vbDefaultButton3, _Title:=”MsgBox”End Sub

#14. vbDefaultButton4

Use esta constante para especificar o quarto botão em sua msgbox como o botão padrão.

Sub DefaultButton4() Prompt de MsgBox:=”Button4 está destacado?”, _Buttons:=vbYesNoCancel + vbMsgBoxHelpButton + vbDefaultButton4, _Title:=”MsgBox”End Sub

#15. vbApplicationModal

Esta constante irá suspender a aplicação (Excel), o usuário deverá responder ao msgbox para utilizar a aplicação.

Em OKOnly()

Prompt de MsgBox: = “Esta é uma MsgBox”, _

Botões:=vbOKSomente, _

Título: = “Caixa de correio”, _

Finalizando a legenda

#16. vbSystemModal

Esta constante irá suspender todos os aplicativos do seu sistema operacional, o usuário deve primeiro responder à caixa de mensagem.

Sub ApplicationModal() Prompt MsgBox := »Este é o modal do aplicativo», _Buttons :=vbOK + vbApplicationModal, _Title := »MsgBox »End Sub

#17. vbMsgBoxHelpButton

Use esta constante para adicionar um botão de ajuda à sua caixa de correio. Você pode adicionar um arquivo de ajuda e um número de contexto para usar o botão de ajuda.

Sub HelpButton() Prompt de MsgBox:=”Usar botão de ajuda”, _Buttons:=vbOK + vbMsgBoxHelpButton, _Title:=”MsgBox”, _HelpFile:=”C:UsersPuneet GogiaDesktopsamplehelp.chm”, _Context:=101End Sub

Assim que o usuário clicar no botão de ajuda, um menu de ajuda será exibido.

#18. vbMsgBoxSetForeground

Essa constante o ajudará a transformar a janela da caixa de mensagens em uma janela de primeiro plano.

Sub SetForeground() Prompt de MsgBox:=”Esta MsgBox está em primeiro plano”, _Buttons:=vbOK + vbMsgBoxSetForeground, _Title:=”MsgBox”End Sub

#19. vbMsgBoxRight

O texto será alinhado à direita usando esta constante.

Em MsgBoxRight()

Prompt MsgBox := “O texto está à direita”, _

Botões:=vbOK + vbMsgBoxRight, _

Título: = “Caixa de correio”

Finalizando a legenda

#20. vbMsgBoxRtlReading

Usando esta constante, a caixa de mensagem irá virar para a direita. Esta constante foi projetada principalmente para os sistemas hebraico e árabe.

Em MsgBoxRtlRead()

Prompt de MsgBox := “Esta caixa está virada”, _

Botões:=vbOK + vbMsgBoxRtlRead, _

Título: = “Caixa de correio”

Finalizando a legenda

Valores de retorno

Cada vez que um usuário responde à caixa de mensagem clicando em um dos botões, um número é gerado. Isso ajudará você a identificar em qual botão o usuário clicou.

Constante
Valor
Descrição
vb OK
1
TUDO BEM
vbCancelar
2
Cancelar
vbAbortar
3
Aborto
vbTente novamente
4
Comece de novo
vbSkip
5
Ignorar
vbSim
6
Sim
vbNão
7
Não

Exemplos do mundo real de uso da função de caixa de mensagens VBA no Excel

Aqui listei alguns exemplos reais de caixas de mensagens VBA e tenho certeza que esses exemplos irão inspirar você a usá-los.

#1. Execute uma macro com um VBA MsgBox

Agora, com a ajuda da função msgbox, você pode avisar o usuário antes de executar uma macro. Vejamos a macro abaixo para entender.

Em SalvarIsso()

Resultado escuro como inteiro

Resultado = MsgBox(“Deseja salvar este arquivo?”, vbOKCancel)

Se Resultado = vbOK Então

ActiveWorkbook.Save

Finalizando a legenda

salvar pasta de trabalho com vba msgbox

Você pode pedir ao usuário para salvar a pasta de trabalho e se o usuário clicar no botão OK, o código da macro salvará a pasta de trabalho.

#2. Inserir uma tabela em uma caixa de mensagem

Você pode usar vbTab para inserir dados tabulares na caixa de mensagem. Neste exemplo, a tabela começa na célula A1.

Em AddToMsgBox()

Escurecer mensagem como string

Dim r como int

Dim c como int

Dim rc como int

Dim cc como int

Dim myRows como intervalo

Escurecer myColumns como intervalo

Mensagem = “”

Definir minhasRows = Range(“A:A”)

Definir minhasColunas = Intervalo (“1:1”)

rc = Application.CountA(minhasRows)

cc = Application.CountA(minhasColunas)

Para r = 1 para rcPara c = 1 para cc

Mensagem = Mensagem e Células (r, c).Texto

Se c <= cc Então

Mensagem = Mensagem & vbTab

próximo cMsg = Msg & vbCrLf

Próxima

Mensagem de caixa de mensagem

Finalizando a legenda

#3. Mostrar caixa de mensagem ao abrir um arquivo

Se você observar a macro abaixo, usei auto_open para criar uma mensagem a ser exibida quando a pasta de trabalho for aberta.

Em auto_open()

MsgBox “Bem-vindo ao Exceladvisor e obrigado por baixar este arquivo” _

+ vbNewLine + vbNewLine + “Aqui você encontrará uma explicação detalhada da função MsgBox. » _

+ vbNewLine + vbNewLine + “E não esqueça de conferir outras coisas legais. »

Finalizando a legenda

Aprendizado

  1. Você não pode adicionar quatro botões a uma caixa de mensagem se não usar o botão de ajuda como o quarto botão.
  2. Para criar um arquivo de ajuda para sua caixa de mensagem, você pode consultar o arquivo de exemplo a seguir.

Arquivo de exemplo

Baixe este arquivo de amostra aqui para saber mais sobre ele.

Conclusão

A caixa de mensagem não apenas ajuda a transmitir uma mensagem, mas também causa uma impressão criativa no usuário. Você pode enviar uma mensagem para eles e obter uma resposta simples.

E como eu disse, se você é novo no VBA, aprender a usar uma caixa de mensagens é uma das melhores coisas. Espero que este artigo tenha ajudado você a se aproximar do seu sonho de dominar o VBA, mas agora me diga uma coisa.

Você acha que a função MsgBox é uma das coisas mais legais do VBA?

Não deixe de compartilhar suas opiniões comigo na seção de comentários, adoraria ouvir de você e não se esqueça de compartilhar essa dica com seus amigos.

Saiba mais sobre VBA

Adicione um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *