Método Application.InputBox (Excel)

Exibe uma caixa de diálogo de entrada do usuário. Retorna informações inseridas na caixa de diálogo.

Sintaxe

expression.InputBox (Prompt, Title, Default, Left, Top, HelpFile, HelpContextID, Type)

expressão Uma variável que representa um Aplicativo objeto.

Parâmetros

Nome Obrigatório/Opcional Tipo de dados Descrição
Prompt Obrigatório Cadeia de caracteres A mensagem a ser exibida na caixa de diálogo. Isso pode ser uma cadeia de caracteres, um número, uma data ou um valor Booleano (o Microsoft Excel impõe automaticamente o valor para uma Cadeia de Caracteres antes deste ser exibido). O comprimento máximo é de 255 caracteres, caso contrário, não há uma solicitação, e o método do aplicativo retorna imediatamente o Erro 2015.
Title Opcional Variantes Título da caixa de entrada. Se esse argumento for omitido, o título padrão será Entrada.
Default Opcional Variant Especifica um valor que será exibido na caixa de texto quando a caixa de diálogo for exibida inicialmente. Se este argumento for omitido, a caixa de texto é deixada vazia. Este valor pode ser um objeto Range.
Left Opcional Variant Especifica uma posição x para a caixa de diálogo em relação ao contato superior esquerdo da tela, em pontos.
Top Opcional Variant Especifica uma posição y para a caixa de diálogo em relação ao canto superior esquerdo da tela, em pontos.
HelpFile Opcional Variant O nome do arquivo de Ajuda para esta caixa de entrada. Se os argumentos HelpFile e HelpContextID estiverem presentes, um botão de Ajuda será exibido na caixa de diálogo.
HelpContextID Opcional Variant O número da ID de contexto do tópico da Ajuda em HelpFile.
Type Opcional Variantes Especifica o tipo de dados de retorno. Se esse argumento for omitido, a caixa de diálogo retorna texto.

Valor de retorno

Variant

Comentários

A tabela a seguir lista os valores que podem ser passados no argumento Type. Eles podem ser um ou a soma de valores. Por exemplo, para uma caixa de entrada que possa aceitar tanto texto quanto números, defina Type como 1 + 2.

Valor Descrição
0 Uma fórmula
1 Um número
2 Texto (uma cadeia de caracteres)
4 Um valor lógico (True ou False)
8 Uma referência de célula, como um objeto Range
16 Um valor de erro, como #N/A
64 Uma matriz de valores

Use InputBox para exibir uma caixa de diálogo simples, de modo que você possa inserir informações a serem usadas em uma macro. A caixa de diálogo tem um botão OK e um botão Cancelar. Se você selecionar o botão OK, InputBox retorna o valor inserido na caixa de diálogo. Se você selecionar o botão Cancel, InputBox retorna False.

Se o Type for 0, InputBox retorna a fórmula na forma de texto, por exemplo, =2*PI()/360. Se houver alguma referência na fórmula, elas são retornadas como referências de estilo A1. (Use ConvertFormula para realizar conversões entre os estilos de referência.)

Se Type for 8, InputBox retorna um objeto Range. Você deve usar a instrução Set para atribuir o resultado a um objeto Range, como mostrado no exemplo a seguir.

Set myRange = Application.InputBox(prompt := "Sample", type := 8)

Se você não usar a instrução Set, a variável será definida como o valor no intervalo, em vez do próprio objeto Range.

Se você usar o método InputBox para solicitar uma fórmula ao usuário, deverá usar a propriedade FormulaLocal para atribuir a fórmula como um objeto Range. A fórmula de entrada estará no idioma do usuário.

O método InputBox difere da função InputBox já que ele permite a validação seletiva da entrada dos usuários e pode ser usado com os objetos do Excel, valores de erro e fórmulas. Observe que o Application.InputBox chama o método InputBox; o InputBox sem um qualificador de objeto chama a função InputBox.

Exemplo

Este exemplo solicita um número do usuário.

myNum = Application.InputBox("Enter a number")

Este exemplo solicita ao usuário que selecione uma célula no Sheet1. O exemplo usa o argumento Type para garantir que o valor de retorno seja uma referência de célula válida (um objeto Range).

Worksheets("Sheet1").Activate 
Set myCell = Application.InputBox( _ 
    prompt:="Select a cell", Type:=8)

Este exemplo usa um InputBox para o usuário selecionar um intervalo para passar para a função definida pelo usuário MyFunction, que multiplica três valores em um intervalo e retorna o resultado.

Sub Cbm_Value_Select()
   'Set up the variables.
   Dim rng As Range
   
   'Use the InputBox dialog to set the range for MyFunction, with some simple error handling.
   Set rng = Application.InputBox("Range:", Type:=8)
   If rng.Cells.Count <> 3 Then
     MsgBox "Length, width and height are needed -" & _
         vbLf & "please select three cells!"
      Exit Sub
   End If
   
   'Call MyFunction by value using the active cell.
   ActiveCell.Value = MyFunction(rng)
End Sub

Function MyFunction(rng As Range) As Double
   MyFunction = rng(1) * rng(2) * rng(3)
End Function

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.