HomeSoftwareMs ExcelExcel VBA: criar formulários interativos com ActiveX

Excel VBA: criar formulários interativos com ActiveX

Os controles ActiveX são componentes interativos que podem ser usados no Microsoft Excel para aprimorar os recursos da planilha. Usando controles ActiveX, os usuários podem criar interfaces mais atraentes e flexíveis, como caixas de texto, caixas de listagem, caixas de combinação, caixas de seleção e botões de opção.

Esse recurso é alimentado pelo Visual Basic for Applications (VBA), que permite que os usuários escrevam código para organizar as interações entre usuários e planilhas do Excel.

A presença do ActiveX no Excel VBA é essencial porque oferece uma ampla gama de vantagens.  Os controles ActiveX fornecem interações mais intuitivas, como escolher em uma lista ou inserir texto. Além disso, com o VBA, os usuários podem personalizar o comportamento e a aparência dos controles conforme necessário, como preencher automaticamente as caixas de combinação do banco de dados.

O ActiveX também ajuda a reduzir erros de entrada fornecendo controles estruturados, como uma caixa de seleção para opções Sim/Não. Os controles ActiveX podem ser integrados às macros VBA, o que permite a automação de várias tarefas, incluindo validação de dados e relatórios dinâmicos.

ActiveX Controls

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

No Excel, há dois tipos principais de controles que você pode usar: ActiveX Controls e Form Controls.

ComparaçãoActiveX ControlsForm Controls
InteratividadeMais dinâmico, programável com VBAMenos flexível, apenas para funções essenciais
PersonalizaçãoRedimensionar, cor e outras propriedadesLimitações nas configurações de exibição
CompatibilidadeFunciona apenas no Windows e requer VBAPode ser usado no Windows & Mac
Facilidade de usoPrecisa de conhecimento do VBA para configuração avançadaFácil de usar sem codificação
ResponsividadePode responder a eventos como cliques, focos ou entradasTem apenas funções básicas, como executar macros

Se você precisar de controles mais complexos e integração com o VBA, os controles ActiveX são o caminho a percorrer. No entanto, se você quiser apenas usar botões ou listas simples sem a necessidade de programação, os Controles de Formulário serão suficientes.

Habilitando controles ActiveX no Excel

Se ActiveX Controls não funcionarem no Excel, as configurações de segurança internas do Excel provavelmente limitarão esse recurso. A Microsoft restringe automaticamente o uso de ActiveX Controls para evitar riscos de segurança, como a execução de código mal-intencionado de fontes não confiáveis. Portanto, você precisa alterar as configurações de segurança no Trust Center para que o Excel possa usar ActiveX Controls mais livremente. Você pode habilitar uma opção que permite que os controles ActiveX operem sem restrições ou solicitar confirmação antes de ativá-los.

Passos:

  1. Abra o aplicativo Microsoft Excel.
  2. Clique no menu File, selecione Options e prossiga para Trust Center.
  3. Na janela exibida, selecione Trust Center Settings….
  4. No painel esquerdo, localize e selecione ActiveX Settings.
  5. Você verá várias opções; Escolha uma das seguintes opções:
    • Enable all controls without restrictions and without prompting (Habilite todos os controles sem restrições e solicitações de confirmação).
    • Ou, se você quiser um nível mais alto de segurança, escolha Prompt me before enabling all controls with minimal restrictions (Peça confirmação antes de ativar todos os controles com restrições mínimas).
  6. Após escolher, clique em OK e feche todas as janelas de configurações que se abrem.

Tipos de controles ActiveX e como usá-los

No Excel VBA, ActiveX Controls são usados para melhorar a interatividade e a automação em planilhas. Aqui estão alguns dos controles mais usados e como usá-los.

1. Caixa de texto

O Text Box permite que os usuários insiram ou exibam texto em uma UserForm ou planilha do Excel. Com VBA, podemos definir o conteúdo do Text Box, preenchendo os dados automaticamente ou recebendo informações dos usuários.

Como criar uma caixa de texto no Excel VBA

  1. Abra o Excel e ative a  guia Developer.
  2. Selecione Developer > Insert > Text Box (ActiveX Controls).
  3. Clique e arraste para criar um Text Box na planilha.
  4. Para adicionar um código VBA, clique com o botão direito do mouse em Text Box e selecione View Code.

Exemplo de código VBA para preencher automaticamente caixas de texto

O código a seguir preencherá automaticamente o Text Box com texto quando ele for executado:

TextBox1.Text “Data imported successfully”

2. Caixa de listagem

List Box é um elemento de controle que serve para exibir uma lista de seleções, permitindo que o usuário selecione um ou mais itens. Isso é especialmente útil em formulários de entrada de dados ou para navegação entre páginas em aplicativos que usam Excel VBA.

Como adicionar dados a uma caixa de listagem no Excel VBA

  1. Abra a  guia Developer no Excel.
  2. Selecione Insert > List Box (ActiveX Controls).
  3. Clique e arraste para colocar o List Box na planilha.
  4. Clique com o botão direito do mouse em List Box > Properties.

Exemplo de código VBA para adicionar itens à caixa de listagem

Use o seguinte código VBA para adicionar vários nomes de cidades ao List Box:

With Sheet1.ListBox1
     .AddItem    “Jakarta”
     .AddItem “Surabaya”
     .AddItem “Bandung”
End With

Este código pode ser colocado em Workbook_Open caso para que os dados sejam carregados automaticamente quando o arquivo for aberto.

Conectando caixas de listagem com células no Excel

Para exibir os itens selecionados do List Box para uma célula específica, execute as seguintes etapas:

  1. Clique com o botão direito do mouse em List Box e selecione Properties.
  2. Localize a propriedade LinkedCell e insira o endereço da célula (exemplo: D3).
  3. Agora, sempre que o usuário selecionar um item no List Box, o valor aparecerá na célula D3.

Se você quiser recuperar o valor selecionado usando VBA, use o seguinte código:

Range(“D3”).Value =  ListBox1.Value

3. Caixa de combinação

Combo Box é um controle ActiveX no Excel VBA que serve como uma lista de opções que podem ser puxadas para baixo. Os usuários podem selecionar um único item da lista ou digitar seu texto. Um Combo Box é frequentemente usado em formulários de entrada para minimizar erros ao inserir dados, pois os usuários só podem escolher entre as opções fornecidas.

Como adicionar dados dinâmicos a uma caixa de combinação

Para adicionar um Combo Box a uma planilha, siga estas etapas:

  1. Abra o Excel e certifique-se  de que a guia Developer esteja ativada.
  2. Clique em Developer > Insert > Combo Box (ActiveX Controls).
  3. Clique e arraste para desenhar Combo Box na planilha.
  4. Clique com o botão direito do mouse em Combo Box e selecione Properties.

Exemplo de código VBA para adicionar itens a uma caixa de combinação dinamicamente

Use o código a seguir para adicionar itens ao Combo Box automaticamente quando a pasta de trabalho for aberta ou o botão for clicado:

ComboBox.Add  Item “Option 1”
ComboBox1.Add Item “Option 2”
ComboBox1.Add Item “Option 3”

Conectando caixas de combinação com células no Excel

Para salvar o valor selecionado no Combo Box em uma célula específica, execute as seguintes etapas:

  1. Clique com o botão direito do mouse em Combo Box e selecione Properties.
  2. Localize a propriedade LinkedCell e insira o endereço da célula (por exemplo, D3).
  3. Agora, sempre que o usuário selecionar um item no Combo Box, esse valor aparecerá na célula D3.

Como alternativa, use o seguinte código VBA para salvar o valor da opção na célula:

Range(“D3”).Value  ComboBox1.Value

4. Caixa de seleção

Check Box é um controle que permite ao usuário selecionar a opção Ya/Tidak ou True/False. Isso é útil para entradas binárias, como confirmação de consentimento, seleção de recursos ou ativação/desativação de uma função em um formulário.

Usando a caixa de seleção para salvar valores verdadeiros/falsos

Para adicionar um Check Box no Excel VBA, siga estas etapas:

  1. Abra a  guia Developer no Excel.
  2. Clique em Insert > Check Box (ActiveX Controls).
  3. Clique e arraste para colocar o Check Box na planilha.
  4. Clique com o botão direito do mouse em Check Box > Properties.

Exemplo de código VBA para conectar uma caixa de seleção a uma célula

Para Check Box armazenar valores em células com base em seu status, use o seguinte código:

If CheckBox1.Value  = True Then
     Range(“D2”).Value  1
Else
     Range(“D2”).Value = 0
End If

Este código preencherá D2 células com 1 se o Check Box estiver marcado e 0 se não estiver marcado.

Para fazer com que essa função seja executada automaticamente quando o usuário clicar em Check Box, use event Change dentro do VBA Editor:

Private Sub CheckBox1_Click()
     If CheckBox1.Value  = True Then
     Range(“D2”).Value  1
     Else
        Range(“D2”).Value = 0
      End If
End Sub

5. Botões de opção

Tanto o Check Box quanto o Option Buttons são usados para fornecer opções aos usuários, mas existem diferenças importantes entre os dois:

CaracterísticaCheck BoxOption Buttons
FunçãoPermite que os usuários escolham mais de uma opçãoApenas uma opção pode ser selecionada em um grupo
Tipo de entradaValor binário (Verdadeiro/Falso)Opções exclusivas (apenas uma opção ativa em um grupo)
UsarUsado para ativar/desativar recursosUsado para escolher uma das várias opções
Exemplos de usoEscolher recursos adicionais em um formulárioEscolha um gênero ou forma de pagamento

Se o usuário precisar selecionar mais de uma opção, use Check Box. No entanto, se você puder escolher apenas uma das várias opções, use Option Buttons.

Etapas para criar um botão de seleção no Excel VBA

  1. Abra o Excel e ative a  guia Developer.
  2. Selecione Developer > Insert > Option Button (ActiveX Controls).
  3. Clique e arraste para colocar dois Option Buttons na planilha.
  4. Clique com o botão direito do mouse em cada Option Button e selecione Properties.
    • Renomeie (Name) para OptionButton1 e OptionButton2.
    • Altere o Caption para “Masculino” para OptionButton1 e “Feminino” para OptionButton2.
  5. Para agrupar os dois botões, coloque-os em Frame (ActiveX Controls) ou no UserForm.

Exemplo de código VBA para conectar chaves seletoras com células

O código a seguir armazenará uma seleção do Option Button na célula D3 de acordo com a escolha do usuário:

If OptionButton1.Value  =  True Then Range(“D3”).Value “Male”
If OptionButton2.Value  =  True Then Range(“D3”).Value “Female”

Para garantir que esse código seja executado automaticamente quando o usuário clicar no botão, use os seguintes eventos do VBA:

Private Sub OptionButton1_Click()
    Range(“D3”).Value =“Male”
End Sub

Private Sub OptionButton2_Click()
     Range(“D3”).Value =“Female”
End Sub

Com este código, D3 células serão atualizadas automaticamente de acordo com as escolhas feitas pelo usuário.

6. Botão de rotação

Spin Button é um controle usado para aumentar ou diminuir o valor numérico em uma célula gradualmente. Isso é especialmente útil para entradas numéricas, como definir o número de mercadorias, taxas de juros ou outros parâmetros que tenham limitações de valor.

Como definir os valores máximo e mínimo no botão de rotação

  1. Abra a  guia Developer no Excel.
  2. Clique em Insert > Spin Button (ActiveX Controls).
  3. Clique e arraste para colocar o Spin Button na planilha.
  4. Clique com o botão direito do mouse no Spin Button e selecione Properties.

Exemplo de código VBA para definir o botão de rotação

Use o código a seguir para definir o limite de valor Spin Button:

SpinButton1.Max  = 100
SpinButton1.Min  = 0

Para conectar Spin Button com células no Excel, use o seguinte código:

Private Sub SpinButton1_Change()
    Range(“C3”).Value = SpinButton1.Value
End Sub

Esse código garantirá que toda vez que o usuário pressionar a tecla Spin Button, os valores na célula C3 serão alterados de acordo com os valores definidos nos controles.

Conclusão

Os controles ActiveX no Excel VBA são um recurso muito útil para melhorar a interação e a eficiência no processamento de dados. Com vários controles, como Text Box, Combo Box, List Box, Check Box, Option Buttons e Spin Button, os usuários podem criar uma interface mais compreensível, automatizar o preenchimento de dados e reduzir erros ao preencher formulários.

Uma das principais vantagens dos controles ActiveX é sua capacidade de ser personalizado via VBA, o que permite a execução automática de comandos e a integração com bancos de dados ou macros para gerenciamento de dados mais complexos.

Para maximizar o uso de controles ActiveX, é recomendável implementar técnicas de automação mais avançadas, como  uso de UserForm, validação de dados, manipulação de eventos e formatação condicional para melhorar a experiência do usuário. Além disso, conectar controles ActiveX a bancos de dados como Microsoft Access ou SQL Server pode ajudar no gerenciamento de grandes quantidades de dados.

Ao aplicar essas técnicas, o processo de preenchimento de dados se torna mais eficiente, preciso e profissional. Portanto, entender e implementar controles ActiveX no Excel VBA pode ser a melhor solução para usuários que desejam construir um sistema de entrada de dados mais estruturado e automatizado.

Últimos artigos