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])
- 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
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
- 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.
- 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