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

Função InputBox

Cavalcante Consultores > Biblioteca de Excel > Função InputBox

O que é?

A função InputBox permite que o programa interaja com o usuário, pedindo a ele que digite uma informação ou dado. Ela exibe uma mensagem de instrução e uma caixa de texto onde o usuário irá digitar a informação solicitada. A caixa fica ativa até que o usuário clique sobre o botão OK ou Cancelar. Ao clicar em OK, a função retornará o valor digitado, ou então, este dado poderá ser manipulado de acordo com a sua necessidade via código.

Sintaxe

InputBox(Mensagem, Titulo, Padrao, Esquerda, Superior, Ajuda, Topico)

Mensagem é o texto que orienta o usuário sobre qual valor digitar na caixa de texto.

Titulo é o título da caixa de diálogo.

Padrao é o valor exibido na caixa de texto como resposta padrão se nenhum dado for fornecido.

Esquerda é distancia entre a borda esquerda da caixa de diálogo e o canto esquerdo da tela. Se omitido, a caixa de diálogo será centralizada horizontalmente.

Superior é distancia entre a borda superior da caixa de diálogo e topo da tela. Se omitido, a caixa de diálogo será posicionada a 1/3 do topo. Esquerda e Superior são parâmetros que só funcionam quando usados em conjunto. Se você usa Esquerda, deve usar Superior, e vice versa.

Ajuda é o arquivo de ajuda relativo à caixa de diálogo. Se usado, um botão Ajuda aparece na caixa.

Topico é o número do tópico associado à ajuda. Ajuda e Topico são parâmetros que só funcionam quando usados em conjunto. Se você usa Ajuda, deve usar Topico, e vice versa.

Com exceção de Mensagem, todos os demais parâmetros são opcionais.

Para omitir parâmetros intermediários você deve delimitar usando a vírgula correspondente. Exemplo:

InputBox(“Digite seu nome”,  ,  , 2000, 3000).

Neste exemplo omitimos os parâmetros Titulo e Padrão, deixando um espaço vazio entre as vírgulas.

Quando o usuário clica em OK, a função InputBox retorna o que estiver na caixa de texto. Se o usuário clicar em Cancelar, a função retornará um texto vazio ("").

Observação: Para criar uma mensagem com duas linhas ou mais, utilize o código Chr(13) entre cada linha da mensagem.

Exemplo

No exemplo a seguir foi criada uma caixa de mensagem que pede ao usuário que digite seu ano de nascimento. Caso o valor digitado atenda o padrão especificado, o programa mostrará sua idade. Caso contrário, será exibido um aviso solicitando que o valor digitado é inválido. Observe o código abaixo:

Sub perguntar()

   Dim ano As Variant
   Dim idade As Integer
   Dim linha1 As String
   Dim linha2 As String
   Dim linha3 As String
    
   linha1 = "Em que ano você nasceu?"
   linha2 = "Atenção: digite o ano com 4 digítos"
   linha3 = "Exemplo: 1982"        
  
   ano = InputBox(linha1 & Chr(13) & Chr(13) & linha2 & Chr(13) & linha3, _
   "Nascimento", , , , "ajuda.hlp", 1)   

   If (ano = "" Or IsNumeric(ano) = False Or ano < 1900 Or ano > 2007) Then
       MsgBox "valor inválido. Tente novamente"
    Else      
         idade = 2007 - ano
         MsgBox "Você tem ou fará " & idade & " anos."
    End If
            
End Sub

Observe que os parâmetros da função InputBox podem ser definidos por meio de variáveis, como foi feito com a mensagem (com as variáveis linha1, linha2 e linha3). A variável que recebe a resposta do InputBox, variável ano, deve ser do tipo Variant para aceitar qualquer resposta, isso evita erros que param o código. Também foi incluído um botão Ajuda à caixa de diálogo que serve apenas como exemplo, já que o arquivo de ajuda (“ajuda.hlp”) na verdade não existe.

Uma verificação é feita para saber se o ano digitado está correto, devido a seguintes possibilidades:

Caso o ano seja válido, a idade é calculada tendo como base o ano de 2007. Após a inserção de dados na caixa de diálogo, uma mensagem exibirá a idade calculada.

Pratique