Cavalcante Consultores – treinamento e consultoria em finanças e Excel

Emitindo mensagens personalizadas com MsgBox

Cavalcante Consultores > Biblioteca de Excel > Emitindo mensagens personalizadas com MsgBox

O que é?

A função MsgBox exibe uma caixa de mensagem ao usuário e aguarda com que o usuário clique em um de seus botões para que esta seja fechada.

A estrutura de chamada à função MsgBox se faz da seguinte forma:

MsgBox([prompt][, buttons] [, title] [, helpfile, context]) As VbMsgBoxResult

Expressões

Prompt

Obrigatória. Expressão de seqüência de caracteres exibida como mensagem na caixa de diálogo. O comprimento máximo 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 alimentação de linha (Chr(10)) ou uma combinação de caracteres de retorno de carro e alimentação de linha (Chr(13) & Chr(10)) entre cada linha.

Buttons

Opcional. Expressão numérica que é a soma de valores que especifica o número e o tipo de botões a exibir, o estilo de ícone a utilizar, a identidade do botão padrão e a modalidade da caixa de mensagem. Se omitido, o valor padrão para buttons é 0.

Title

Opcional. Expressão de seqüência de caracteres exibida na barra de título da caixa de diálogo. Se você omitir title, o nome do aplicativo será inserido na barra de título.

Helpfile

Opcional. Expressão de seqüência de caracteres que identifica o arquivo de Ajuda a ser utilizado para fornecer ajuda sensível ao contexto relativo à caixa de diálogo. Se helpfile for fornecido, context também deverá ser fornecido.

Context

Opcional. Expressão numérica que é o número de contexto da Ajuda atribuído ao tópico da Ajuda apropriado por seu autor. Se context for fornecido, helpfile também deverá ser fornecido.

Definições

As definições do argumento buttons são as seguintes:

O primeiro grupo de valores (0 a 5) descreve o número e o tipo de botões exibidos na caixa de diálogo; o segundo grupo (16, 32, 48, 64) descreve o estilo de ícone; o terceiro grupo (0, 256, 512) determina qual botão é o padrão e o quarto grupo (0, 4.096) determina a modalidade da caixa de mensagem. Quando estiver somando números para criar um valor final para o argumento buttons, utilize somente um número de cada grupo.

Observação: Essas constantes são especificadas pelo Visual Basic for Applications. Como resultado, os nomes podem ser utilizados em qualquer lugar do seu código em vez dos valores reais.

Como o MsgBox é uma Função (Function), é possível capturar o valor retornado conforme a ação do usuário.

Valores retornados

Exemplo

Apesar do grande número de opções e parâmetro oferecidos pelo MsgBox, vamos nos concentrar em sua funcionalidade mais simples neste momento, que é emitir mensagens aos usuários. Veja este exemplo de código abaixo:

Execute a função e terá o seguinte resultado:

No código de exemplo, apenas o primeiro parâmetro é informado, o suficiente para fazer uso de mensagens simples. Porém é possível personalizar ainda mais a caixa de mensagem conforme mostra o próximo código de exemplo:

Note que mais dois parâmetros foram informados, o parâmetro Button e Title. Execute a função e terá o seguinte resultado:

O parâmetro Title permitiu alterar o título da MsgBox, enquanto o parâmetro Button alterou o contexto da informação. Como foi informado que o botão a ser mostrado seria do tipo vbInformation, um ícone de informação foi adicionado ao caixa e mensagem. Outros tipos de Buttons podem ser utilizados, que geraram diferentes ícones, conjunto de botões, 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 diferença da aparência se mudar o parâmetro para o seguinte:

O resultado da execução do código será a seguinte:

Note a mudança do ícone e do som emitido pelo aplicativo. A mensagem também foi alterada para refletir a contexto do ícone utilizado.

Comentários

Como o MsgBox é uma função (Function), sua execução retorna um valor que é do tipo VbMsgBoxResult. Quando se utiliza alguns tipos especiais de parâmetros Button, este retorna nos dá uma alternativa de analisar a decisão do usuário com base no retorno do MsgBox.

Quando helpfile e context são fornecidos, o usuário pode pressionar F1 (Windows) ou ajuda (Macintosh) para visualizar o tópico de Ajuda que corresponde ao context. Alguns aplicativos host, por exemplo, o Microsoft Excel, também adicionam automaticamente um botão Ajuda à caixa de diálogo. Se o usuário clicar em OK ou pressionar a função InputBox retornará o que estiver na caixa de texto. Se o usuário clicar em Cancelar, a função retornará uma seqüência de caracteres de comprimento zero ("").

Observação: Para especificar mais que o primeiro argumento nomeado, você deve utilizar InputBox em uma expressão. Para omitir alguns argumentos posicionais, você deve incluir o delimitador de vírgula correspondente.