Você está na página 1de 3

VBA Confirmando decises com o MsgBox (VbMsgBoxResult)

Introduo
O VBA disponibiliza uma forma de emitir mensagens personalizadas para o usurio atravs da funo MsgBox, permitindo incluse alterar uma srie de suas configuraes. Desta vez, analisaremos uma das caractersticas da MsgBox que analisar seu retorno, que informado pelo usurio o clicar em um dos botes disponveis na caixa de mensagem. este recurso til quando se deseja fazer questes aos usurios. A resposta da questo vir da opes oferecidas a ele pelo MsgBox. Comearemos sabendo como analisar o retorno da MsgBox. Veja o cdigo de exemplo: 1 Public Sub TesteMsgBox() Dim resultado As VbMsgBoxResult 2 3 resultado = MsgBox("Testando o VbMsgBoxResult!", vbOKOnly, 4 "Testando o MsgBox") 5 MsgBox resultado End Sub O resultado da execuo do cdigo sero duas caixas de mensagem na seguinte sequncia (clicando em OK em cada uma delas):

O que valor notar aqui o seguinte. Pelo fato de termos informado o parmetro Buttoncomo vbOkOnly, o nico boto oferecido ao usurio foi o boto OK, o resultado no poderia sido outro que no um. Vamos relembrar a tabela de valores retornados peloMsgBox: Valores retornados Constante Valor Descrio

vbOK

OK Cancelar Abortar Repetir Ignorar

vbCancel 2 vbAbort 3 vbRetry 4 vbIgnore 5

vbYes vbNo

6 7

Sim No

Segundo a tabela, ao acionar o boto OK, o usurio est informando ao VBA um tipo de retorno com o valor 1 que correnpondente contante vbOK. Vamos mudar o parmetroButton para vbYesNo e verificar a execuo do cdigo: 1 Public Sub TesteMsgBox() Dim resultado As VbMsgBoxResult 2 3 resultado = MsgBox("Testando o VbMsgBoxResult!", vbYesNo, "Testando 4 o MsgBox") 5 MsgBox resultado End Sub O resultado:

Note que mais opes foram oferecidas ao usurio. Agora clique no boto Sim para ver o que acontece com o retorno:

Na tabela de Valores retornado, podemos conferir que o valor 6 se refere contantevbYes. Execute a funo novamente, s que desta vez, clique na opo No:

Na tabela de Valores retornado, podemos conferir que o valor 7 se refere contantevbNo. Desta forma, conseguimos um meio que questionar o usurio e facilmente oferecer-lhe opes a respeito desta questo e analisar suas resposta. Experimente alterar o parmetro Button da chamada ao MsgBox e veja o resultado informado.

Tornando o Recurso til


Vimos que possvel oferecer ao usurio uma srie de alternativas de escolha em conjunto a uma mensagem com o MsgBox. Veremos agora um exemplo simples de como analisar o retorno da funo MsgBox para tomar decises nos aplicativos VBA. Veja o seguinte trecho de cdigo: 1 Public Sub TesteVbMsgBoxResult() Dim resultado As VbMsgBoxResult 2 3 resultado = MsgBox("Tem certeza que deseja prosseguir com esta 4 ao?", vbYesNo, "Tomando uma deciso") If resultado = vbYes Then 5 6 MsgBox "Voc acaba de confirmar a ao" Else 7 8 MsgBox "Voc acaba de recusar a ao" End If 9 End Sub

Veja que no necessrio gravar ou mesmo analisar o valor numrico do retorno doMsgBox. O VBA disponibiliza as constantes nomeadas, como vbYes, vbNo, vbOK para que seja possvel fazer uma produo e leitura mais organizada do cdigo. Na linha 6, declarada a varivel resultado do tipo VbMsgBoxResult que armazenar o resultado da MsgBox. Na linha 4 acontece a chamada MsgBox. Quando o usuria clicar em uma das opes mostrada, o VBA armazenar o retorno na varivel resultado. Em seguida, usa-se a estrutura IfThenElse para avaliar o resultado da funo. Veja que a comparao feita com a contante vbYes. Como o cdigo deseja confirmar a ao do usurio, este analisa o resultado de mostra a mensagem pertinente, Veja o resultado da execuo do cdigo:

Ao clicar no boto Sim, o seguinte resultado mostrado:

Como o resultado do MsgBox ao clicar no boato sim o valor de vbYes, o cdigo executa a mensagem da linha 5. Se executar o cdigo novamente e clicar no boto No, o resultado ser:

Desta vez, a linha executada pelo cdigo foi a de nmero 7. Com estes recursos, possvel oferecer o usurio praticamente todos os tipos de opo disponibilizados pelo Microsoft Windows em todas as situaes. Voc pode oferecer opes como Anular/Repetir/Ignorar, Sim/No/Cancelar, entre outras.

Comentrios
Vimos que o MsgBox oferece mais recurso alm da simples exibio de mensagens. Tendo conhecimento de todos as possibilidades da funo, voc ter em mos uma poderosa ferramenta para resolver praticamente todas as situaes de decisao que surgirem no desenvolvimento de seus aplicativos.

Você também pode gostar