Controles VBA no Excel: Formulários e ActiveX

⚡ Resumo Inteligente

Os controles VBA no Excel são os elementos interativos, como botões, caixas de seleção e caixas de texto, que compõem uma interface gráfica do usuário. Esta página explica os controles de formulário, os controles ActiveX, as diferenças entre as duas famílias e apresenta um exemplo passo a passo de um botão de comando ActiveX.

  • 🧩 Controles da interface gráfica do usuário (GUI): Botões, caixas de combinação, caixas de seleção e rótulos formam a interface com a qual um usuário interage em uma planilha.
  • 🗂️ Controles de formulário: Controles simples que executam uma única macro atribuída e funcionam em ambos os casos. Windows e Mac Excel.
  • ⚙️ Controles ActiveX: Controles mais completos com diversas propriedades e eventos, codificados em VBA, disponíveis em Windows Somente Excel.
  • 🔧 Pré-requisito: Ative a faixa de opções Desenvolvedor e salve o arquivo como uma pasta de trabalho habilitada para macros antes de adicionar controles.
  • ▶ ️ Exemplo ActiveX: Um botão de comando imprime a string GuruTutorial VBA 99: Como inserir dados no intervalo de células A1 a A10 ao clicar.
  • 🖱️ Eventos: Os controles ActiveX respondem a eventos como Click, Change e GotFocus por meio de sub-rotinas dedicadas.

Controles VBA no Excel

Controles VBA: controle de formulário VBA e controles ActiveX no Excel

Controles de formulário/GUI VBA no Excel

GUI é a sigla para Interface Gráfica do Usuário. A GUI é a parte do programa com a qual o usuário interage. Uma GUI é composta de controles. Esses controles Excel VBA podem ser usados ​​em um formulário. A tabela a seguir mostra alguns dos controles GUI VBA mais comumente usados.

S / N Controlar Descrição
1 Command Usado para executar código
2 Combo Box Usado para apresentar uma lista suspensa aos usuários
3 Verifique Box Usado para valores verdadeiros ou falsos. Várias caixas de seleção podem ter valor verdadeiro ao mesmo tempo.
4 Lista Box Usado para apresentar uma lista simples aos usuários
5 Texto Box Usado para aceitar entrada do usuário
6 Barra de rolagem Usado para fornecer uma barra de rolagem para fins de navegação.
7 Botão giratório Usado para aumentar ou diminuir valores numéricos clicando nas setas para cima ou para baixo que aparecem no botão giratório
8 Botão de opção Usado para valores verdadeiros ou falsos. Apenas um botão de opção pode ter um valor verdadeiro por vez.
9 O rótulo Usado para exibir texto estático para o usuário
10 Imagem Usado para exibir imagens
11 TogglBotão e Botão que está pressionado e não pressionado.

No controle GUI do VBA,

  1. Clique na guia do desenvolvedor
  2. Clique no botão suspenso Inserir

Você obterá o seguinte painel suspenso

Controles de formulário/GUI VBA no Excel

Se você passar o mouse sobre os controles do formulário VBA, o nome do controle aparecerá conforme mostrado abaixo

Controles de formulário/GUI VBA no Excel

Adicionando controles GUI a uma planilha

Vamos agora adicionar um botão de comando à nossa pasta de trabalho, para isso temos que

  • Clique no menu suspenso Inserir
  • Clique no botão de comando (controle ActiveX) conforme mostrado na imagem acima
  • Arraste e desenhe o botão na planilha

Adicionando controles GUI a uma planilha

Configurando propriedades de controle da GUI

Agora definiremos a legenda do botão para algo mais descritivo

Configurando propriedades de controle da GUI

  1. Clique com o botão direito no botão igual que acabamos de criar
  2. Selecione o menu de propriedades
  3. Você obterá a seguinte janela de propriedades

Configurando propriedades de controle da GUI

  • Defina a propriedade name como btnButton. A propriedade name é usada para identificar o controle na janela de código. btn é o prefixo do botão.
  • Defina a propriedade Caption como Click Me. O texto na propriedade caption é o que os usuários verão no botão.

Feche a janela quando terminar.

Você obterá os seguintes resultados.

Configurando propriedades de controle da GUI

Diferença entre controles de formulário e controles ActiveX

O Excel oferece duas famílias de controles, e escolher a correta simplifica o projeto. Os controles de formulário são integrados ao Excel e executam uma única macro atribuída, enquanto os controles ActiveX são objetos programáveis ​​que respondem a diversos eventos por meio de código VBA. A tabela abaixo compara os dois.

Característica Controles de formulário Controles ActiveX
instalação Simples; atribua uma macro ao controle. Requer código de evento VBA para responder.
Propriedades Conjunto limitado de opções Abrangente, incluindo fonte, cor e comportamento.
Eventos Ação única ao clicar Muitos eventos como Click, Change e GotFocus
Compatibilidade Funciona em Windows e Mac Excel Funciona em Windows Somente Excel
Mais adequado para Tarefas rápidas e simples em planilha Formulários de usuário interativos e dinâmicos

Resumindo, use um controle de formulário quando uma única macro for suficiente e escolha um controle ActiveX quando a interface precisar de propriedades complexas ou de reagir a vários eventos do usuário.

Requisito prévio

Antes de criar o exemplo ActiveX, prepare a pasta de trabalho para que os controles estejam disponíveis e as macros possam ser salvas.

configurar Microsoft Excel
Como vimos no tutorial anterior, certifique-se de que sua faixa de opções tenha o ícone “Desenvolvedor” conforme mostrado aqui.

Requisito prévio

Agora, renomeie a planilha1 para “VBA Operaconforme mostrado na captura de tela abaixo. Salve a planilha com a extensão de arquivo "Pasta de Trabalho Habilitada para Macros do Excel" (*.xlsm). (veja a imagem abaixo)

Requisito prévio

Depois disso, clique no botão Salvar.

Como usar o controle ActiveX em VBA

Com a planilha pronta, podemos adicionar um botão ActiveX funcional. Nesta seção sobre controles ActiveX no Excel, veremos como incorporar um botão 'commandclick' em VBA e executar um programa usando esse botão.

Passo 1) Nesta etapa, clique na opção “botão inserir” do Active X Control. Em seguida, selecione a opção do botão de comando.

Use o controle ActiveX no VBA

Passo 2) Para inserir “clickcommandbutton1” arraste o cursor do mouse para a planilha do Excel.

Use o controle ActiveX no VBA

Passo 3) Em seguida, clique com o botão direito do mouse no botão de comando e selecione a opção “Exibir”. Code".

Use o controle ActiveX no VBA

Passo 4) Verifique se você está na folha certa. Um editor de código será aberto. Insira seu código.

  • No código, definimos o intervalo A1 a A10.
  • Este intervalo define o número da célula na planilha Excel de “A1 a A10”.
  • Em seguida, definimos a string “Guru99 Tutorial de VBA” em código
  • Portanto, ao clicar no botão “Comando” no Excel, deve ser impresso “Guru99 Tutorial de VBA” no intervalo de células “A1 a A10”.

Use o controle ActiveX no VBA

Passo 5) Na próxima etapa, salve o arquivo de código e saia do editor. Para retornar ao arquivo Excel, clique no ícone da planilha Excel Use o controle ActiveX no VBA na extrema esquerda.

Use o controle ActiveX no VBA

Passo 6) Na planilha do Excel, você verá que a guia Modo de Design está ativada. Certifique-se de que esteja “DESLIGADO” ou seu código não funcionará.

Use o controle ActiveX no VBA

Passo 7) Quando o modo de design estiver desativado, não haverá destaque verde nele. Agora você pode clicar no botão de comando.

Use o controle ActiveX no VBA

Passo 8) Clique em “CommandButton1”. Ele imprimirá “Guru99 Tutorial de VBA” no intervalo de células “A1 a A10”.

Use o controle ActiveX no VBA

Baixe o Excel contendo o código acima

Baixe a planilha do Excel acima. Code

Eventos comuns de controles ActiveX em VBA

Um controle ActiveX é poderoso porque reage a eventos, que são ações que o usuário executa no controle. Cada evento executa sua própria sub-rotina, portanto, o mesmo botão pode se comportar de maneira diferente dependendo da ação do usuário. Os eventos mais comuns estão listados abaixo.

  • Clique – executa o código quando o usuário clica no controle, o evento usado no exemplo acima.
  • Mudar – é executado quando o valor de um controle muda, como typing em uma caixa de texto ou selecionando um item de uma caixa de combinação.
  • GotFocus / LostFocus – É executado quando o controle ganha ou perde o foco, útil para validar a entrada.
  • Keypress – É executado quando o usuário pressiona uma tecla enquanto o controle está ativo.
  • Movimento do mouse – É executado quando o ponteiro do mouse se move sobre o controle.
  • Clique duplo – É executado quando o usuário clica duas vezes no controle.

Para adicionar código a qualquer evento, ative o Modo de Design, clique com o botão direito do mouse no controle e escolha Exibir. Codee selecione o evento na lista suspensa na parte superior da janela de código.

Perguntas Frequentes

Um controle de formulário executa uma única macro que você atribui a ele e funciona em Windows e Mac. Um controle ActiveX é programado em VBA, expõe diversas propriedades e eventos e está disponível em Windows Somente Excel.

O menu Inserir para controles de formulário e ActiveX está localizado na faixa de opções Desenvolvedor, que fica oculta por padrão. Habilite-a em Arquivo, Opções, Personalizar Faixa de Opções e marque a opção Desenvolvedor para que os controles e o editor VBA fiquem disponíveis.

O botão provavelmente ainda está no Modo de Design, indicado por um destaque verde na guia Desenvolvedor. Desative o Modo de Design para que o controle execute seu código de evento. A planilha também deve ser salva como um arquivo .xlsm habilitado para macros.

Sim. Assistentes de IA como o Copilot escrevem a sub-rotina Click ou Change a partir de uma descrição simples, por exemplo, limpar o intervalo quando o botão for pressionado. O desenvolvedor cola o código na janela de código do controle e o testa.

Sim. Descreva a entrada que você precisa e um assistente de IA sugerirá um controle adequado, como uma caixa de combinação para uma lista fixa ou uma caixa de seleção para um valor "sim" ou "não", e explicará como definir suas principais propriedades.

Resuma esta postagem com: