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?

Um TextBox é basicamente uma caixa texto usada para obter informações de um usuário.O que é TextBox VBA no Excel?

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.

Guia Desenvolvedor

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.

Caixa de Ferramentas VBA

4. Arraste este TextBox no formulário do usuário.

Como criar um TextBox VBA

Propriedades do TextBox VBA





Com o TextBox selecionado, pressione a tecla F4 para ver as propriedades do TextBox.

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.

Alterar nome da caixa de texto

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.

Exemplo de formulário com TextBox

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:

Planilha para cadastro

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.

Exemplo de uso de TextBox em formulário

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.

Como usar TextBox em formulário

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.

Permitir apenas números no TextBox

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:

apenas números no TextBox

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.

Como fazer Cálculos no TextBox

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.

Inserir TextBox dentro da planilha

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.

Modo Design




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.

Propriedades da Caixa de Texto

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:

Botão de comando no Excel

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.

Como usar TextBox no Excel

 

Baixe aqui a planilha com os exemplos apresentados neste post.

Confira também as seguintes dicas de 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.