Este tutorial demonstrará como obter informações de um usuário com a Caixa de entrada do VBA.
o Caixa de entrada VBA nos permite solicitar que o usuário insira informações. As informações podem ser usadas em nosso Código VBA ou em uma planilha do Excel.
A caixa de entrada VBA com uma variável
Podemos declarar uma variável em nosso código VBA que então armazena as informações digitadas na caixa de entrada. Podemos então usar essa variável em nosso código.
Dependendo do tipo de informação que desejamos retornar da caixa de entrada, podemos declarar um tipo específico de variável para texto de retorno (uma string ou variável variante) ou para retornar um número (um inteiro, variável longa, dupla ou única).
A variável string com uma caixa de entrada
Aqui está como você pode criar um InputBox onde os dados são retornados em uma variável de string.
123 | Dim strInput as StringstrInput = InputBox ("Este é meu InputBox", "MyInputTitle", "Digite seu texto de entrada AQUI") |
Observe primeiro que declaramos uma variável. Esta variável será atribuída ao valor que o usuário inserir. Usamos o tipo de variável String para que a caixa de entrada aceitasse strings de texto (que incluem quaisquer caracteres alfanuméricos).
A variável numérica com uma caixa de entrada
Se você declarar uma variável numérica, precisará inserir um número apenas na caixa de entrada.
12 | Dim iInput As IntegeriInput = InputBox ("Digite um número", "Criar número da fatura", 1) |
Primeiro, declaramos a variável numérica como uma variável inteira. Podemos então colocar um valor padrão de 1 na caixa de entrada.
Se inserirmos uma string em vez de um número e clicarmos em OK, obteremos um erro de incompatibilidade de tipo, pois uma variável de número não aceita uma string.
Obtenha a opinião de um usuário
Aqui está outro exemplo usando os recursos mais populares de um InputBox.
O código a seguir faz três coisas:
1. Solicita entrada com um InputBox e o atribui a uma variável
2. Verifica a entrada, caso contrário, sai do sub
3. Retorna a entrada em uma caixa de mensagem
12345678910111213 | Public Sub MyInputBox ()Dim MyInput As StringMyInput = InputBox ("Este é meu InputBox", "MyInputTitle", "Digite seu texto de entrada AQUI")If MyInput = "Digite seu texto de entrada AQUI" Or MyInput = "" EntãoSair do SubFim seMsgBox "O texto de MyInputBox é" & MyInputEnd Sub |
Retornando a entrada para uma planilha do Excel
Você pode retornar a entrada que você digita em uma caixa de entrada em uma célula específica em sua planilha do Excel.
1 | Range ("P1") = InputBox ("Digite seu nome", "Digite o nome", "Digite o nome AQUI") |
Também podemos retornar dados de entrada para uma planilha do Excel usando uma variável.
12345678910 | Sub EnterNumber ()On Error Resume NextDim dblAmount As DoubledblAmount = InputBox ("Insira a quantia necessária", "Insira a quantia")If dblAmount 0 ThenIntervalo ("A1") = dblAmountOutroMsgBox "Você não digitou um número!"Fim seEnd Sub |
No exemplo acima, devemos inserir um número. Se inserirmos um número, a variável dblAmount colocará o número na planilha do Excel na célula A1. No entanto, se não inserirmos um número, uma caixa de mensagem nos dirá que não inserimos um número e nada será colocado na célula A1.
Usando VBA InputBox no Access VBA
A caixa de entrada do VBA funciona exatamente da mesma maneira no Access e no Excel ao retornar a entrada do usuário na forma de uma caixa de mensagem.
No entanto, se desejar retornar a entrada do usuário ao banco de dados, você precisará usar o objeto Recordset em vez do objeto Range, conforme usado no Excel.
1234567891011121314 | Sub EnterInvoiceNumber ()Dim dbs como banco de dadosDim rst As RecordsetDefinir dbs = CurrentDbDefina rst = dbs.OpenRecordset ("tblMatters", dbOpenDynaset)Com o primeiro.Adicionar novo! InvNo = InputBox ("Digite o número da fatura", "GERAÇÃO DO NÚMERO DA FATURA", 1).AtualizarTerminar comprimeiro.FecharDefinir rst = NadaDefinir dbs = NothingEnd Sub |