Sie sind auf Seite 1von 5

VBA Emitindo mensagens personalizadas com MsgBox

outubro 7th, 2008 by Toms Vsquez

O que ?
A funo MsgBox exibe uma caixa de mensagem ao usurio e aguarda com que o
usurio clique em um de seus botes para que esta seja fechada.
A estrutura de chamada funo MsgBox se faz da seguinte forma:
MsgBox([prompt][, buttons] [, title] [, helpfile, context]) As VbMsgBoxResult
Prompt
Obrigatria. Expresso de seqncia de
caracteres exibida como mensagem na caixa de
dilogo. O comprimento mximo de prompt de aproximadamente 1.024
caracteres, dependendo da largura dos caracteres utilizados. Se prompt consistir em
mais de uma linha, voc poder separar as linhas utilizando um
caractere de retorno de carro (Chr(13)), um caractere de
alimentao de linha (Chr(10)) ou uma combinao de caracteres
de retorno de carro e alimentao de linha (Chr(13) & Chr(10)) entre cada linha.
Buttons
Opcional. Expresso
numrica que a soma de valores que especifica o
nmero e o tipo de botes a exibir, o estilo de cone a utilizar, a identidade
do boto padro e a modalidade da caixa de mensagem. Se omitido, o valor
padro para buttons 0.
Title
Opcional. Expresso de seqncia de caracteres exibida
na barra de ttulo da caixa de dilogo. Se voc omitir title, o nome do
aplicativo ser inserido na barra de ttulo.
Helpfile
Opcional. Expresso de seqncia de caracteres que
identifica o arquivo de Ajuda a ser utilizado para fornecer ajuda
sensvel ao contexto relativa caixa de dilogo. Se helpfile for
fornecido, context tambm dever ser fornecido.
Context
Opcional. Expresso numrica que o nmero de
contexto da Ajuda atribudo ao tpico da Ajuda apropriado por

seu autor. Se context for fornecido, helpfile tambm dever ser


fornecido.
Definies
As definies do argumento buttons so as seguintes:
Constante

Valor

Descrio

VbOKOnly

Exibe somente o boto OK.

VbOKCancel

Exibe os botes OK e Cancelar.

VbAbortRetryIgnore

Exibe os botes Abortar, Repetir e


Ignorar.

VbYesNoCancel

Exibe os botes Sim, No e Cancelar.

VbYesNo

Exibe os botes Sim e No.

VbRetryCancel

Exibe os botes Repetir e Cancelar.

vbCritical

16

Exibe o cone Mensagem crtica.

vbQuestion

32

Exibe o cone Consulta de aviso.

vbExclamation

48

Exibe o cone Mensagem de aviso.

vbInformation

64

Exibe o cone Mensagem de informao.

vbDefaultButton1

O primeiro boto o padro.

vbDefaultButton2

256

O segundo boto o padro.

vbDefaultButton3

512

O terceiro boto o padro.

vbDefaultButton4

768

O quarto boto o padro.

vbApplicationModal

Janela restrita do aplicativo; o usurio deve


responder caixa de
mensagem antes de continuar o trabalho no
aplicativo atual.

vbSystemModal

4096

Janela restrita de sistema; todos os


aplicativos so suspensos at que o
usurio responda caixa de mensagem.

vbMsgBoxHelpButton

16384

Adiciona o boto Ajuda caixa de


mensagens

VbMsgBoxSetForeground 65536

Especifica a janela da caixa de mensagens


como a janela de primeiro
plano

vbMsgBoxRight

524288

O texto alinhado direita

vbMsgBoxRtlReading

1048576

Especifica que o texto deve aparecer como


leitura da direita para a
esquerda em sistemas hebraico e rabe

O primeiro grupo de valores (0 a 5) descreve o nmero e o tipo de botes


exibidos na caixa de dilogo; o segundo grupo (16, 32, 48, 64) descreve o
estilo de cone; o terceiro grupo (0, 256, 512) determina qual boto o
padro e o quarto grupo (0, 4.096) determina a modalidade da caixa de
mensagem. Quando estiver somando nmeros para criar um valor final para o
argumento buttons, utilize somente um nmero de cada grupo.
Observao Essas constantes so especificadas pelo
Visual Basic for Applications. Como resultado, os nomes podem ser utilizados
em qualquer lugar do seu cdigo em vez dos valores reais.
Como o MsgBox uma Funo (Function), possvel capturar o
valor retornado conforme a ao do usurio.
Valores retornados
Constante

vbOK

Valor

Descrio

OK

vbCancel 2

Cancelar

vbAbort 3

Abortar

Repetir

vbIgnore 5

Ignorar

vbRetry
vbYes

Sim

vbNo

No

Exemplo
Apesar do grande nmero de opes e parmetro oferecidos pelo MsgBox,
vamos nos concentrar em sua funcionalidade mais simples neste momento, que
emitir mensagens ao usurios. Veja este exemplo de cdigo abaixo:
1 Public Sub TesteMsgBox()
2
MsgBox "Seja bem vindo ao Microsoft Excel!"
3 End Sub

Execute a funo e ter o seguinte resultado:

Na cdigo de exemplo, apenas o primeiro parmetro informado, o suficiente


para fazer uso de mensagens simples. Porm possvel personalizar ainda mais
a caixa de mensagem conforme mostra o prximo cdigo de exemplo:
Public Sub TesteMsgBox()
1
MsgBox "Seja bem vindo ao Microsoft Excel!", vbInformation,
2
"Testando o MsgBox"
3
End Sub

Note que mais dois parmetros foram informados, o parmetro Button e Title. Execute
a funo e ter o seguinte resultado:

O parmetro Title permitiu alterar o ttulo da MsgBox, enquanto


o parmetro Button alterou o contexto da informao. Como foi informado
que o boto a ser mostrado seria do tipo vbInformation, um cone de
informao foi adicionado ao caixa e mensagem. Outro tipos de Buttons podem
ser utilizadas, que geraram diferentes cones, conjunto de botes, alterando
inclusive o som que executado ao mostrar a caixa. Claro que o ideal sempre
colocar uma mensagem que esteja de acordo com o contexto. Veja a diferena da
aparncia se mudar o parmetro para o seguinte:
1 Public Sub TesteMsgBox()
2
MsgBox "Ocorreu algum erro!", vbCritical, "Testando o MsgBox"
3 End Sub

O resultado da execuo do cdigo ser a seguinte:

Note a mudana do cone e do som emitido pelo aplicativo. A mensagem tambm


foi alterada para refletir a contexto do cone utilizado.

Comentrios
Como o MsgBox uma funo (Function), sua execuo retorna um
valor que do tipo VbMsgBoxResult. Quando se utiliza alguns tipos

especiais de parmetros Button, este retorna nos d uma alternativa de


analisar a deciso do usurio com base no retorno do MsgBox.
Quando helpfile e context so fornecidos, o
usurio pode pressionar F1 (Windows) ou AJUDA (Macintosh) para visualizar o
tpico de Ajuda que corresponde ao context. Alguns
aplicativos host, por exemplo, o Microsoft Excel, tambm adicionam
automaticamente um boto Ajuda caixa de dilogo. Se o usurio clicar
em OK ou pressionar , a funo InputBox retornar o que estiver
na caixa de texto. Se o usurio clicar em Cancelar, a funo retornar
uma seqncia de caracteres de comprimento zero ().
Observao Para especificar mais que o primeiro
argumento nomeado, voc deve utilizar InputBox em uma expresso. Para
omitir alguns argumentos posicionais, voc deve incluir o delimitador de
vrgula correspondente.

Pratique!
Caso no consiga abrir os arquivos, clique nos links com o boto direito do
mouse e escolha salvar como.

Das könnte Ihnen auch gefallen