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

Utilizando o InputBox

Cavalcante Consultores > Biblioteca de Excel > Utilizando o InputBox

O que é?

A função InputBox exibe uma caixa de diálogo ao usuário, oferecendo a este a possibilidade de inserir uma valor que pode ser utilizado em seu aplicativo.

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

InputBox([prompt][, title] [, default] [, xpos] [, ypos] [, helpfile, context]) As String

Argumentos da função:

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) e Chr(10)) entre cada linha.

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.

Default

Opcional. Expressão de seqüência de caracteres exibida na caixa de texto como resposta padrão se nenhuma entrada for fornecida. Se você omitir default, a caixa de texto será exibida vazia.

Xpos

Opcional. Expressão numérica que especifica, em twips, a distância horizontal da borda esquerda da caixa de diálogo em relação à borda esquerda da tela. Se xpos for omitido, a caixa de diálogo será centralizada horizontalmente.

Ypos

Opcional. Expressão numérica que especifica, em twips, a distância vertical da borda superior da caixa de diálogo em relação ao alto da tela. Se ypos for omitido, a caixa de diálogo será posicionada verticalmente na terça parte inferior da tela.

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 relativa à 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.

Como pode ser visto, somente o primeiro parâmetro é opcional, mas ao longo do texto veremos que é interessante utilizar os demais para melhorar a usabilidade de nosso InputBox.

Como o InputBox é uma Função (Function), é possível, aliás, necessário capturar o valor retornado que é informado pelo usuário. Para ficar mais claro, veja o exemplo de código abaixo:

Exemplo

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

Como dito, o InputBox mostra uma caixa de diálogo em que é possível oferecer ao usuário uma entrada de dados. Digite seu nome na caixa e clique em OK para ver o seguinte resultado:

O código anterior faz o seguinte processamento:

Note que o InputBox foi mostrado com as informações que foram passadas na chamada da função. Isto possibilita que você personalize de forma bastante completa como deseja solicitar informações ao usuário. Os demais parâmetros não foram informados neste caso por não serem necessários. Geralmente os três primeiros são suficientes para resolver grande parte dos casos.

Cuidados a serem tomados com o uso do InputBox

O InputBox é realmente muito prático para coleta de informações, porém, é necessário alguns cuidados em sua utilização para evitar possível enganos em seus aplicativos.

No código mostrado anteriormente, mostramos o funcionamento tradicional do uso do InputBox. Porém, caso o usuário tivesse clicado no botão Cancelar do InputBox, o resultado seria o seguinte:

Não que o texto não tenha sido informado, mas o VBA considerou que o texto retornado foi vazio. Para contornar este tipo de situação, veja a alteração feita no código:

A mudança feita incrementa uma verificação do conteúdo da variável nome com a estrutura If...Else...End If. Caso o conteúdo esteja vazio ou o botão cancelar seja informado, a seguinte mensagem é exibida:

Comentários

É bom lembrar também que o tipo de retorno do InputBox é sempre uma String. Caso deseje efetuar cálculos numéricos ou mesmo capturar valores de data, utilize as funções de conversão do VBA (CInt, CDate, CDbl, IsNumeric) para efetuar as conversões e validações necessárias.

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.