Vídeo: [VBA] Criar e configurar caixas de mensagem (Msgbox) 2025
A flexibilidade do argumento do botão VBA facilita a personalização das caixas de mensagem do Excel. Você pode escolher quais botões exibir, determinar se um ícone aparece e decidir qual botão é o padrão (o botão padrão é "clicado" se o usuário pressionar Enter).
Você pode usar constantes embutidas para o argumento de botões. Se você preferir, você pode usar o valor em vez de uma constante (mas usar as constantes embutidas é muito mais fácil).
Para usar mais de uma dessas constantes como um argumento, basta conectá-las com um operador +. Por exemplo, para exibir uma caixa de mensagem com botões Sim e Não e um ícone de exclamação, use a seguinte expressão como o segundo argumento MsgBox:
vbYesNo + vbExclamation
Ou, se preferir tornar seu código menos compreensível, use um valor de 52 (ou seja, 4 + 48).
O exemplo a seguir usa uma combinação de constantes para exibir uma caixa de mensagem com um botão Sim e um botão Não (vbYesNo), bem como um ícone de ponto de interrogação (vbQuestion). A constante vbDefaultButton2 designa o segundo botão (Não) como o botão padrão - ou seja, o botão que é clicado se o usuário pressionar Enter. Por simplicidade, essas constantes são atribuídas à variável Config e, em seguida, use Config como o segundo argumento na função MsgBox:
Sub GetAnswer3 () Dim Config Como Long Dim Ans Como Integer Config = vbYesNo + vbQuestion + vbDefaultButton2 Ans = MsgBox ("Processar o relatório mensal?", Config) Se Ans = vBYes Then RunReport End Sub
Verifique a caixa de mensagem que o Excel exibe quando você executa o procedimento GetAnswer3. Se o usuário clicar no botão Sim, a rotina executa o procedimento chamado RunReport. Se o usuário clicar no botão Não (ou pressionar Enter), a rotina termina sem ação. Como o argumento do título foi omitido na função MsgBox, o Excel usa o título padrão, o Microsoft Excel.
A seguinte rotina fornece outro exemplo de usar a função MsgBox:
Sub GetAnswer4 () Dim Msg As String, Título como String Dim Config As Integer, Ans As Integer Msg = "Você deseja processar o relatório mensal? "Msg = Msg & vbNewLine & vbNewLine Msg = Msg &" Processando o relatório mensal "Msg = Msg &" levará aproximadamente 15 minutos. Ele "Msg = Msg &" irá gerar um relatório de 30 páginas para "Msg = Msg &" todos os escritórios de vendas para o atual "Msg = Msg &" month. "Title =" XYZ Marketing Company "Config = vbYesNo + vbQuestion Ans = MsgBox (Msg, Config, Title) Se Ans = vBYes Then RunReport End Sub
Este exemplo demonstra uma maneira eficiente de especificar uma mensagem mais longa em uma caixa de mensagem.Uma variável (Msg) e o operador de concatenação (&) são usados para criar a mensagem em uma série de instruções. A constante vbNewLine insere um caractere de quebra de linha que inicia uma nova linha (use duas vezes para inserir uma linha em branco). O argumento do título é usado para exibir um título diferente na caixa de mensagem. Aqui está a caixa de mensagem que o Excel exibe quando você executa esse procedimento.
Você pode usar constantes (como vbYes e vbNo) para o valor de retorno de uma função MsgBox. Aqui estão algumas outras constantes.
Constante | Valor | O que significa |
---|---|---|
vbOK | 1 | O usuário clicou em OK. |
vbCancel | 2 | Usuário clicou em Cancelar. |
vbAbort | 3 | O usuário clicou em Abortar. |
vbRetry | 4 | O usuário clicou em Repetir. |
vbIgnore | 5 | O usuário clicou em Ignorar. |
vbYes | 6 | O usuário clicou em Sim. |
vbNo | 7 | Usuário clicado n. ° |
E isso é praticamente tudo o que você precisa saber sobre a função MsgBox. Porém, use caixas de mensagens com cautela. Geralmente, não há motivo para exibir caixas de mensagens que não servem para nada. Por exemplo, as pessoas tendem a ficar irritadas quando vêem uma caixa de mensagens todos os dias que lê o Bom dia. Obrigado por carregar o livro de trabalho de Projeção de orçamento.
