TextBox VBA no Excel: Como Criar?
Quer aprender a trabalhar com TextBox VBA no Excel e dinamizar ainda mais as suas planilhas? Então este guia é para você!
Um TextBox, também conhecido como Caixa de Texto, é um dos controles disponíveis para criação de formulários no VBA. Este controle também está disponível no Excel, no qual é possível criar caixas de texto em uma planilha.
Neste guia separamos um compilado das principais informações que você precisa conhecer para trabalhar com TextBox no Excel VBA. Você vai descobrir o poder deste controle e as diversas possibilidades que ele fornece para a criação de formulários e até mesmo automação de tarefas no Excel. Se interessou pelo assunto? Então, confira os detalhes a seguir.
Navegue pelo tópico de seu interesse:
- O que é TextBox VBA no Excel?
- Como criar TextBox em formulários no VBA?
- Exemplo de uso de TextBox no formulário
- Como criar TextBox em um Planilha no Excel?
O que é TextBox VBA no Excel?
Um TextBox é basicamente uma caixa texto usada para obter informações de um usuário.
O TextBox é um dos diversos controles de formulários (UserForm) no Excel e pode ser útil quando você deseja receber informações do usuário, como nome, idade, endereço, salário, etc. Usando o controle TextBox, você pode permitir que os usuários insiram esse tipo de informação e economizem muito do seu tempo e também evitem erros de digitação.
Basicamente existem duas opções de TextBox no Excel que são:
- TextBox em formulários no VBA.
- TextBox em planilhas do Excel (Controle ActiveX)
A seguir, você vai descobrir como criar TextBox para ambos os casos, além de algumas outras funcionalidades que este controle oferece.
Como criar TextBox em formulários no VBA?
Para criar um TextBox em formulários no VBA, siga as etapas abaixo:
1. Abra um arquivo Excel e acesse a guia Desenvolvedor > Visual Basic (Se preferir, utilize as teclas de atalho Alt + F11).
Dica: Caso não tenha a guia Desenvolvedor habilitada em seu Excel, confira aqui o passo a passo para habilitá-la.
2. Conforme mencionado anteriormente, o TextBox é uma opção disponível no UserForm, então precisamos inserir UserForm no VBA. Para isto, acesse a guia Inserir > UserForm.
3. Assim que você inserir um UserForm no VBA, você poderá ver uma opção de caixa de ferramentas associada a ele e ter diferentes opções associadas ao UserForm. Nesta caixa de ferramentas, selecione TextBox.
4. Arraste este TextBox no formulário do usuário.
Propriedades do TextBox VBA
Com o TextBox selecionado, pressione a tecla F4 para ver as propriedades do TextBox.
Na imagem acima, note que o TextBox contém várias propriedades, incluindo Name, Color, Border Color, Border Style, Font, Height entre outros.
Dica: Por padrão, quando se insere um TextBox no VBA, o Excel atribui o nome de TextBox1, TextBox2, TextBox3 e assim por diante. Deste modo, para facilitar a codificação, recomenda-se criar nomes amigáveis para facilitar a identificação de cada TextBox. No exemplo abaixo, alteramos o nome do TextBox de TextBox1 para Meu_TextBox.
Exemplo de uso de TextBox no formulário
Para compreender o uso básico do TextBox no VBA, criaremos a seguir um formulário de cadastro de funcionários no qual armazenará na planilha as informações inseridas no formulário. Para isto, siga as etapas:
Etapa 1: Utilizando os conhecimentos apresentados anteriormente, crie um formulário no VBA conforme imagem abaixo:
Dica: Caso tenha dúvidas sobre a criação de formulário no Excel VBA, recomendamos a leitura do artigo: Formulário VBA: Um Guia Completo.
Defina as propriedades de cada elemento do formulário conforme exemplo abaixo:
UserForm1
- Name: UserForm_Cadastro
- Caption: Cadastro
TextBox1
- Name: txt_Nome
TextBox2
- Name: txt_Departamento
TextBox3
- Name: txt_Cargo
Label1
- Caption: NOME:
Label2
- Caption: CARGO:
Label3
- Caption: DEPARTAMENTO:
Botão de Comando (CommandButton1)
- Name: cmd_Cadastrar
- Caption: Cadastrar Funcionário
Etapa 2: Crie na mesma pasta de trabalho uma planilha chamada Funcionários. Essa planilha armazenará os registros cadastrados através do formulário. Portanto, é necessário definir cada campo conforme imagem abaixo:
Etapa 3: Volte ao Editor do Visual Basic. Dê duplo clique no botão “Cadastrar Funcionário” para abrir a sub-rotina.
Primeiro precisamos identificar a última linha preenchida na planilha. Para isto, utilizaremos o código abaixo:
Private Sub cmd_Cadastrar_Click() Dim Ultima_Linha As Long Ultima_Linha = Worksheets("Funcionários").Cells(Rows.Count, 1).End(xlUp).Row + 1 End Sub
Etapa 4: Em seguida, armazenaremos o “Nome” do funcionário na primeira coluna. Então, para isso, precisamos acessar a caixa de texto chamada txt_Nome.
Range("A" & Ultima_Linha).Value = txt_Nome.Value
Etapa 5: Agora precisamos armazenar o “Cargo” do funcionário na segunda coluna. Neste caso, podemos obter isso acessando a caixa de texto txt_Cargo.
Range("C" & Ultima_Linha).Value = txt_Cargo.Value
Etapa 6: Por fim, precisamos armazenar o “Departamento” do funcionário na terceira coluna. Neste caso, podemos obter isso acessando a caixa de texto txt_Departamento.
Range("B" & Ultima_Linha).Value = txt_Departamento.Value
Finalizada a etapa de codificação, agora basta executar o código usando a tecla F5. Você deverá visualizar um UserForm conforme imagem abaixo.
Preencha cada campo do formulário e, em seguida, clique no botão “Cadastrar Funcionário“. Observe que os dados do formulário serão armazenados na planilha.
Permitir apenas números no TextBox VBA
Em alguns casos, você poderá precisar restringir um TextBox de modo que o usuário possa inserir apenas valores numéricos. Este tipo de prática pode ser utilizada em casos onde o valor inserido no TextBox será utilizado em algum cálculo, por exemplo. Deste modo, restringir a inserção apenas de valores numéricos evitará erros no cálculo caso o usuário insira valores de texto ou qualquer outro valore não numérico.
Abaixo estão os passos para você permitir apenas números em um TextBox VBA:
1. Dê duplo clique no TextBox desejado para abrir a sub-rotina. Neste exemplo, criamos um TextBox chamado txt_Salario que irá cadastrar o salário do funcionário.
2. Insira o seguinte código:
Private Sub txt_Salario_Change() If Not IsNumeric(txt_Salario.Value) Then MsgBox "Apenas números são permitidos" End If End Sub
No código acima, quando o usuário inserir qualquer valor na caixa de texto txt_Salario, o VBA analisará se o valor inserido é um número. Caso o valor não seja um número, então será retornada a mensagem de erro “Apenas números são permitidos“. Sendo assim, a única maneira do usuário prosseguir com o cadastro é alterando o valor inserido na caixa de texto para um número. Veja o exemplo abaixo:
Dica de Leitura:
Como limpar dados do TextBox no VBA?
Quando se utiliza um formulário de cadastro, geralmente os usuários de Excel costumam cadastrar vários registros consecutivamente. E para que isto seja feito com praticidade, ao clicar no botão para cadastrar os dados na planilha, torna-se necessário apagar os dados digitados anteriormente, limpando assim, o TextBox para receber novos dados que serão digitados pelo usuário.
Para limpar um TextBox, utilize um dos códigos abaixo:
TextBox1.value = ""
ou
TextBox1.value = Empty
O exemplo abaixo mostra o código completo que realiza o cadastro dos dados na planilha e, posteriormente, limpa cada TextBox para receber novas informações:
Private Sub cmd_Cadastrar_Click() Dim Ultima_Linha As Long Ultima_Linha = Worksheets("Funcionários").Cells(Rows.Count, 1).End(xlUp).Row + 1 Range("A" & Ultima_Linha).Value = txt_Nome.Value Range("B" & Ultima_Linha).Value = txt_Cargo.Value Range("C" & Ultima_Linha).Value = txt_Departamento.Value Range("D" & Ultima_Linha).Value = txt_Salario.Value txt_Nome.Value = Empty txt_Cargo.Value = Empty txt_Departamento.Value = Empty txt_Salario.Value = Empty End Sub
Como fazer Cálculos no TextBox VBA?
Além de inserir valores conforme demonstrado anteriormente, você também pode utilizar o TextBox para realizar qualquer tipo de cálculo matemático.
No exemplo abaixo, temos um formulário com três TextBox e, ao clicar no botão “CALCULAR”, o VBA exibirá o total da multiplicação entre Quantidade e Valor Unitário.
Para isto, considere:
- TextBox1 com a propriedade Name definida como txt_QTD
- TextBox2 com a propriedade Name definida como txt_ValorUN
- TextBox3 com a propriedade Name definida como txt_Total
- CommandButton1 com a propriedade Name definida como Cmd_Calcular
Dê duplo clique no botão e insira o seguinte código:
Private Sub Cmd_Calcular_Click() txt_Total = txt_QTD * txt_ValorUN End Sub
No código acima, quando o usuário clica no botão “CALCULAR”, o VBA atribui ao txt_Total o resultado da multiplicação txt_QTD * txt_ValorUN. Confira o resultado abaixo:
Como Formatar TextBox como Moeda?
Para aplicar o formato de Moeda em um valor inserido no TextBox, siga as etapas abaixo:
1. Dê duplo clique no TextBox que deseja formatar para acessar a sub-rotina. Neste exemplo, selecionamos o txt_ValorUN.
2. Altere o evento para AfterUpdate. Isto significa que o código será executado sempre que houve alguma alteração no txt_ValorUN.
3. Dentro da sub-rotina, insira o código conforme abaixo:
Private Sub txt_ValorUN_AfterUpdate() txt_ValorUN = Format(txt_ValorUN.Value, "R$ #,##.00") End Sub
Para aplicar o formato moeda no txt_Total, basta dar duplo clique no botão e alterar o código conforme abaixo:
Resultado sem formato Moeda:
txt_Total = txt_QTD * txt_ValorUN
Resultado com formato Moeda:
txt_Total = Format(txt_QTD * txt_ValorUN, "R$ #,##.00")
Dica: Confira aqui outros formatos para TextBox no VBA.
Como criar TextBox em uma Planilha no Excel?
Além do uso de TextBox em formulário no VBA, também é possível inseri-los dentro da planilha. Para isto, siga as etapas abaixo:
1. Na planilha que deseja inserir o TextBox, acesse a guia Desenvolvedor > Inserir > Controles ActiveX > TextBox.
2. Clique e arraste na planilha para desenhar a caixa de texto na posição desejada. Solte o botão do mouse para concluir o desenho do TextBox.
3. A caixa de texto estará no modo Design. Neste modo, podemos dimensionar a caixa e selecionar as Propriedades do TextBox.
4. Clique no botão Propriedades para mostrar a janela de propriedades do TextBox. Nesta janela, podemos alterar uma variedade de propriedades da caixa de texto, como o nome da caixa, a cor do texto, fundo ou borda, o estilo da borda e a fonte usada para o texto na caixa de texto, por exemplo.
Para usar o TextBox diretamente no Excel, como usamos no formulário VBA acima, precisamos encontrar uma maneira de retornar os dados digitados na caixa de texto para a planilha do Excel. Isso pode ser feito adicionando um botão de comando ActiveX à planilha e usando o click_event desse botão de comando para retornar as informações da caixa de texto para a planilha do Excel. Para isto, siga as etapas abaixo:
1. Acesse a guia Desenvolvedor > Inserir > Controles ActiveX > Botão de comando para adicionar um botão de comando à sua planilha do Excel.
2. Acesse as Propriedades do botão e altere o nome do botão (Name), a legenda do botão (Caption) e o Acelerador do botão (Accelerator) conforme mostrado na imagem abaixo:
3. Dê duplo clique no botão para ir para o evento de clique do botão VBA e digite o seguinte código:
Private Sub cmd_Ok_Click() Range("A1") = txt_Nome.Value End Sub
O código acima irá inserir na célula A1 da planilha o texto digitado na TextBox.
4. Volte para a planilha do Excel, certifique-se de que o Modo Design esteja desligado. Digite na caixa o texto na TextBox e clique no botão Ok para inserir o texto na Planilha.
Baixe aqui a planilha com os exemplos apresentados neste post.
Confira também as seguintes dicas de Excel:
- ListBox no VBA: Um Guia Completo
- Inputbox no Excel VBA – Um Guia Completo
- Erro em Tempo de Execução 1004 | Como Solucionar?
- Como Preencher um ComboBox no Excel
E então, o que achou do guia sobre TextBox VBA no Excel? Caso tenha ficado com alguma dúvida, basta deixar o seu comentário abaixo.