Índice:
- Você pode usar a função MsgBox de duas maneiras:
- Se você exibir uma caixa de mensagem que tenha mais do que apenas um botão OK, você provavelmente quer saber qual botão o usuário clicar. Você está com sorte. A função MsgBox pode retornar um valor que representa qual botão é clicado. Você pode atribuir o resultado da função MsgBox a uma variável.
Vídeo: [Excel VBA] Caixas de Diálogo com MSGBox 2/2 2025
Você provavelmente está familiarizado com a função MsgBox do VBA. A função MsgBox, que aceita os argumentos mostrados abaixo, é útil para exibir informações e obter a entrada simples do usuário. É capaz de obter entrada do usuário porque é uma função. Uma função, como você provavelmente sabe, retorna um valor. No caso da função MsgBox, ele usa uma caixa de diálogo para obter o valor que ele retorna. Continue lendo para ver exatamente como funciona.
Argumento | O que afeta |
---|---|
Aviso | O texto Excel exibe na caixa de mensagem |
Botões | Um número que especifica quais botões (juntamente com o ícone)
aparecem na caixa de mensagem (opcional) |
Título | O texto que aparece na barra de título da caixa de mensagem
(opcional) |
Aqui está uma versão simplificada da sintaxe da função MsgBox: <
Exibição de uma caixa de mensagem simples
Você pode usar a função MsgBox de duas maneiras:
Para simplesmente mostrar uma mensagem para o usuário:
-
Nesse caso, você não se preocupa com o resultado retornado pela função. Para obter uma resposta do usuário:
-
Neste caso, você se preocupa com o resultado retornado pela função. O resultado depende do botão que o usuário clica.
Sub MsgBoxDemo () MsgBox "Clique em OK para começar a imprimir. "Folhas (" Resultados "). PrintOut End Sub
Veja abaixo para ver como essa caixa de mensagem se parece. Neste caso, a impressão começa quando o usuário clicar em OK. Você percebe que não há como cancelar a impressão? Continue lendo para descobrir como consertar isso.
Uma caixa de mensagem simples.
Se você exibir uma caixa de mensagem que tenha mais do que apenas um botão OK, você provavelmente quer saber qual botão o usuário clicar. Você está com sorte. A função MsgBox pode retornar um valor que representa qual botão é clicado. Você pode atribuir o resultado da função MsgBox a uma variável.
No código a seguir, são usadas constantes incorporadas que facilitam o trabalho com os valores retornados por MsgBox:
Sub GetAnswer () Dim Ans Como Long Ans = MsgBox ("Iniciar a impressão?", VbYesNo) Selecione Case Ans Case vBYes ActiveSheet. PrintOut Case vbNo MsgBox "Impressão cancelada" End Select End Sub
Constante
Valor | O que é | vbOKOnly |
---|---|---|
0 | Exibe apenas o botão OK. | vbOKCancel |
1 | Exibe botões OK e Cancelar. | vbAbortRetryIgnore |
2 | Exibe os botões Abortar, Repetir e Ignorar. | vbYesNoCancel |
3 | Exibe os botões Sim, Não e Cancelar. | vbYesNo |
4 | Exibe os botões Sim e No. | vbRetryCancel |
5 | Exibe os botões Repetir e Cancelar. | vbCritical |
16 | Exibe o ícone da Mensagem Crítica. | vbQuestion |
32 | Exibe o ícone da Consulta de Aviso. | vbExclamation |
48 | Exibe o ícone da Mensagem de advertência. | vbInformation |
64 | exibe o ícone da mensagem de informação. | vbDefaultButton1 |
0 | O primeiro botão é padrão. | vbDefaultButton2 |
256 | O segundo botão é padrão. | vbDefaultButton3 |
512 | O terceiro botão é padrão. | vbDefaultButton4 |
768 | O quarto botão é padrão. | Veja como parece. Quando você executa esse procedimento, a variável Ans é atribuída a um valor de vbYes ou vbNo, dependendo de qual botão o usuário clica. A instrução Select Case usa o valor Ans para determinar qual ação o código deve executar. |
Uma caixa de mensagem simples, com dois botões.
Sub GetAnswer2 () Se MsgBox ("Iniciar a impressão?", VbYesNo) = vbYes Então '… [codificar se Sim for clicou] … Else '… [código se Sim não for clicado] … End If End Sub
