Inputbox no Excel VBA – Um Guia Completo

Quer aprender a criar um Inputbox no Excel? Então você está no lugar certo!

Frequentemente, no Excel, usamos os dados que já estão na planilha. No entanto, às vezes, também precisamos de algum tipo de dado de entrada dos usuários. Especialmente no VBA, muitas vezes é necessária a entrada de dados inseridos pelo usuário. E é justamente neste ponto que uma Inputbox (ou Caixa de Entrada) entram em cena.

Usando a Inputbox, podemos obter os dados do usuário e usá-los para propósito. Se você ainda não conhece esse recurso ou se você já tem alguma noção mas quer aprender a criar Inputbox no Excel, então continue acompanhando os detalhes deste artigo.

Afinal, o que é Inputbox no Excel?

Inputbox é uma ferramenta (função) que possibilita o usuário inserir informações na planilha através de uma caixa de entrada.

O trabalho da função Inputbox no VBA é obter alguma entrada do usuário. Ele exibe uma caixa de diálogo para o usuário que lhe dê uma dica de qual valor deve ser inserido e, em seguida, retorna esse valor na planilha.

Você pode utilizar essa ferramenta com o objetivo de facilitar o registro de dados em uma planilha, tornando-o mais eficiente e menos suscetível a erros. Um bom exemplo de uso de uma Inputbox no Excel, é o preenchimento de formulários de cadastro de clientes.


Sintaxe

Por se tratar de uma função, antes de aprender a criar um Inputbox no Excel, é preciso conhecer a sintaxe dela que neste caso é:

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

Onde:

  • Prompt: Refere-se à mensagem exibida ao usuário.
  • Title: Representa o título da caixa de entrada. Se for omitido, um título padrão “Microsoft Excel” é mostrado.
  • Default: Representa o valor padrão da caixa de entrada? Este valor aparece na área de digitação da caixa de entrada.

Esses três parâmetros são suficientes no Excel. Ignore os outros 4 parâmetros opcionais. Para entender essa sintaxe, observe a imagem abaixo:

Sintaxe

Detalhes importantes sobre o InputBox

  • Esta função precisa de tratamento de erros adequado. Se o usuário clicar no botão cancelar sem inserir nenhum valor, ocorrerá um erro.
  • Uma InputBox só pode aceitar até 255 caracteres, mas pode retornar apenas 254. Portanto, sempre tome cuidado com o comprimento máximo de um valor que o usuário pode inserir.
  • Ao contrário de uma MsgBox, uma InputBox deve sempre ter uma variável para a qual pode retornar os resultados.
  • Outro problema com esta função é que às vezes os usuários podem inserir algo que não é esperado. Por exemplo, se você estiver pedindo ao usuário algum número inteiro e o usuário inserir uma string de texto, nesse caso, seu código será interrompido. Portanto, é importante saber lidar com essas questões.

Como criar um Inputbox no Excel?

Para criar um Inputbox no Excel, siga as etapas abaixo:

1. Acesse a guia Desenvolvedor > VBA.

2. Na tela de edição do VBA, insira um novo módulo na guia Inserir > Módulo.

Inserir um módulo no VBA




3. Dê um duplo clique no módulo inserido e crie um nome de macro.

caixa de entrada no Excel

4. Dentro da macro criada, digite Inputbox e dê espaço. Você verá a sintaxe da função conforme exemplo abaixo:

Como criar um Inputbox no Excel

5. Forneça o prompt. Para este exemplo será:”Digite seu nome”.

prompt caixa de entrada

6. Digite o título (title) da Inputbox como, por exemplo: “Informações pessoais”.

Inputbox title

7. Insira o argumento Default. Neste exemplo será: “Digite aqui”.

default vba inputbox

8. Pronto! Execute este código e veja sua primeira Inputbox.

função inputbox

Como armazenar o valor da InputBox nas células

Se você chegou até aqui, então já sabe como criar uma Inputbox no Excel VBA. No entanto, você deve ter notado que ao inserir um valor e clicar em OK, o valor inserido não é armazenado na planilha. Para que isso ocorra, siga os passos abaixo:

1. Crie uma macro e declare ela com o tipo Variant.

Sub Teste_Inputbox()
Dim valor As Variant

End Sub

2. Para esta variável, atribua o valor por meio da Inputbox da seguinte maneira:

Sub Teste_Inputbox()
Dim valor As Variant
valor = InputBox(“Digite seu nome”, “Informações pessoais”, “Digite aqui”)
End Sub

Importante: Como neste caso a Inputbox vem à direita do sinal de igual, precisamos inserir os argumentos ou sintaxe entre parenteses, assim como fazemos nas fórmulas do Excel.

3. Agora, qualquer que seja o valor inserido na Inputbox, precisamos armazená-lo na célula A1. Então, para isso, escreva o código como Range(“A1”).Value = valor

Sub Teste_Inputbox()
Dim valor As Variant
valor = InputBox(“Digite seu nome”, “Informações pessoais”, “Digite aqui”)
Range(“A1”).Value = valor
End Sub

Pronto! Você poderá executar este código pressionando a tecla F5. Assim que executar o código, você verá a Inputbox. Insira o valor no respectivo campo e clique em Ok.

Você verá o valor da inputbox na célula A1.

Como armazenar o valor da InputBox nas células

Observação: É possível armazenar qualquer valor da Inputbox se a variável for definida corretamente. No exemplo acima, definimos a variável com o tipo Variant, que pode conter todos os tipos de dados.




Por exemplo, agora alteramos o tipo de variável para Date.

exemplo de caixa de entrada no excel

Agora se você executar o código e digitar outro valor que não seja uma data, obterá um erro.

tipos incompatíveis inputbox

Obtivemos o erro: Tipo incompatíveis, pois como declaramos o tipo de dados da variável como DATE, não podemos armazenar nada além de data usando a Inputbox.

Agora insira uma data e veja o que acontece.

caixa de entrada para inserir apenas datas

Criando uma Validação de Entrada de Dados (Application.InputBox)

Quando se trata de Inputbox no Excel, podemos permitir que o usuário insira apenas valores específicos, ou seja, permitir que o usuário insira apenas texto, apenas número, apenas valores lógicos, etc.

Para realizar esta tarefa, precisamos usar o método Application.InputBox. As configurações são idênticas aos da função Inputbox que acabamos de ver, mas com a adição de um último argumento, o Type. A sintaxe deste método é

O argumento Type representa qual deve ser a string de entrada. Abaixo estão as validações disponíveis.

Valor Significado
0 Aceita apenas Fórmulas
1 Aceita apenas Número
2 Aceita apenas Texto (String)
4 Aceita apenas Valor lógico (verdadeiro ou falso)
8 Apenas referência de célula, na forma de um objeto Range
16 Valor de erro como #N/D
64 Matriz de valores

Exemplo:

Neste exemplo, se você precisa validar apenas a entrada de números em uma Inputbox, então você poderá usar o código abaixo:

Sub Inputbox_Número()
número = Application.InputBox(“Digite um número”, “Número”, “Digite aqui”, Type:=1)
Range(“A1”).Value = número

End Sub

Observe no código acima que o argumento Type está configurado como 1, ou seja, a Inputbox aceitará apenas números. Isso significa que se o usuário tentar inserir um valor diferente de um número, ele obterá o erro “O número não é válido

Application.InputBox

Do mesmo modo, você poderá utilizar os outros valores no argumento Type para validar outros tipos de entrada como, por exemplo, texto, valores lógicos, etc.


Exemplos de Inputbox

Até aqui, vimos os principais conceitos referente a Inputbox no Excel. E para aprofundarmos ainda mais o aprendizado, vamos conferir alguns exemplos práticos de uso dessa função.

Exemplo 1: Inputbox com Msgbox

Neste primeiro exemplo, solicitamos ao usuário para inserir o seu nome na Inputbox. Observe no código abaixo que o usuário deve inserir um valor do tipo texto, pois declaramos a variável nome como sendo do tipo String.

O texto digitado pelo usuário na Inputbox será atribuído à variável nome, que por sua vez, irá mostrar uma mensagem concatenada com o nome digitado.

Sub Teste_Inputbox()
Dim nome As String
nome = InputBox(“Digite seu nome”, “Posso saber seu nome!”)
MsgBox (“Olá,” & nome & “bem-vindo ao Excel Easy!”)
End Sub

Inputbox com Msgbox

Exemplo 2: Inputbox com If e Else

Neste segundo exemplo, pedimos ao usuário para inserir um número e, em seguida, verificamos o resto depois de dividir o número por 2. Se o resto for 1, o número é ímpar, caso contrário, se o resto da divisão for 0, então o número é par.

Sub Testa_valor()
Dim número As Integer

número = InputBox(“Insira qualquer número:”)
resultado = número Mod 2

If resultado = 0 Then
MsgBox “O número que você inseriu é par”
ElseIf resultado = 1 Then
MsgBox “O número que você inseriu é impar”
End If
End Sub

Inputbox com If e Else


Exemplo 3: Evitando erros causados ​​quando o usuário clica no botão cancelar

Conforme mencionado anteriormente, quando o usuário clica no botão ‘Cancelar’ da Inputbox, ele retorna uma string vazia. Essa string vazia pode resultar em um erro no código, portanto, é sempre uma boa ideia verificar o comprimento da string retornada pela função.

Se o comprimento for 0, então você pode presumir que o usuário deve ter clicado no botão Cancelar e, portanto, proceder de acordo.

Observe no código abaixo, onde é solicitado o nome do usuário. Se o usuário clicar no botão Cancelar, uma caixa de mensagem com um aviso será exibida, caso contrário, ele verá a mensagem de saudação.

Sub Inputbox_teste()
Dim nome As String
nome = InputBox(“Digite seu nome:”, “Seu nome, por favor”)

If Len(nome) = 0 Then
MsgBox “Por favor, digite um nome válido ! “, vbCritical
Else
MsgBox (“Olá, ” & nome & ” bem-vindo ao Excel Easy!”)
End If
End Sub

erro no botão cancelar Inputbox

Exemplo 4: Resolvendo o erro “Tipos incompatíveis” no Inputbox

Conforme mencionado anteriormente, o erro de “Tipos incompatíveis” é outro problema comum com o qual você pode ter que lidar ao usar a função InputBox.

Esse problema pode ocorrer quando o usuário insere algum valor que você não esperava (exemplo: Texto em vez de número). Esse problema não tem solução infalível, mas pelo menos você pode impedir que o código seja encerrado inesperadamente usando a declaração On Error.

O código abaixo é o mesmo usado no exemplo 2. No entanto, nós tornamos ele mais resistente a erros adicionando uma instrução “On Error GoTo ValorInválido” que garante que sempre que qualquer exceção for causada, o código deve terminar normalmente.

Sub Testa_valor()
On Error GoTo ValorInválido
Dim número As Integer

número = InputBox(“Insira qualquer número:”)
resultado = número Mod 2

If resultado = 0 Then
MsgBox “O número que você inseriu é par”
ElseIf resultado = 1 Then
MsgBox “O número que você inseriu é impar”
End If

ValorInválido:
MsgBox “Você inseriu algum valor inválido!”, vbCritical
End Sub

Resolvendo o erro "Tipos incompatíveis" no Inputbox

 

Confira também as seguintes dicas de Excel:

E então, o que achou do tutorial sobre Inputbox no Excel VBA? Ficou com alguma dúvida? Deixe o seu comentário abaixo e continue acompanhando mais dicas de Excel em nosso site!