ComboBoxes permite que os usuários selecionem uma opção em uma lista do menu suspenso. ComboBoxes podem ser criados em UserForms VBA ou com uma planilha do Excel. Neste tutorial, você aprenderá como criar e manipular ComboBoxes em VBA e em planilhas do Excel.
Se você quiser aprender como criar uma caixa de listagem, clique aqui: Caixa de listagem VBA
Se você quiser aprender como criar uma caixa de seleção, clique aqui: Caixa de seleção VBA
Crie uma ComboBox na planilha do Excel
Para inserir uma ComboBox na planilha, você precisa ir para o Guia do desenvolvedor, clique Inserir e em Controles ActiveX escolha Caixa combo:
Imagem 1. Insira uma ComboBox na Planilha
Ao selecionar a ComboBox que inseriu, você pode clicar em Propriedades debaixo de Guia do desenvolvedor:
Imagem 2. Altere as propriedades do ComboBox
Aqui você pode definir diferentes propriedades do ComboBox. Para começar, mudamos o atributo Nome para cmbComboBox. Agora, podemos usar o ComboBox com este nome no código VBA.
Preencher uma ComboBox no código VBA
Primeiro, precisamos preencher o ComboBox com valores. Na maioria dos casos, uma ComboBox precisa ser preenchida quando a pasta de trabalho é aberta. Por conta disso, precisamos colocar um código para preencher o ComboBox no objeto Livro de exercícios, procedimento Abrir. Este procedimento é executado sempre que um usuário abre a pasta de trabalho. Aqui está o código:
123456789 | Com Sheet1.cmbComboBox.Adicionar item "John".Adicionar item "Michael".Adicionar item "Jennifer".Adicionar item "Lilly".Adicionar item "Robert"Terminar com |
Ao clicar no menu suspenso, você terá 5 nomes para escolher (John, Michael, Jennifer, Lilly e Robert):
Imagem 3. Preencha o ComboBox em VBA
Preencher uma ComboBox a partir de um intervalo de células
Outra forma possível de preencher uma ComboBox é permitir que um usuário faça isso. Uma ComboBox pode ser vinculada ao intervalo de células. Nessa abordagem, toda vez que um usuário inserir um novo valor no intervalo de células, o ComboBox será atualizado com esse valor.
Se você quiser habilitar isso, você deve ir para o Propriedades da ComboBox e definir o atributo ListFillRange para o intervalo de células (no nosso caso E2: E5):
Imagem 4. Preencha a ComboBox a partir do intervalo de células
Vinculamos nosso ComboBox ao intervalo E2: E5, onde colocamos os nomes que desejamos (Nathan, Harry, George, Roberta). Como resultado, o ComboBox agora é preenchido com estes nomes:
Imagem 5. ComboBox preenchido a partir do intervalo de células
Obtenha um item selecionado de uma ComboBox no VBA
O objetivo de um ComboBox é permitir a escolha do usuário. Para recuperar uma escolha do usuário, você precisa usar este código:
123 | Dim strSelectedItem As VariantstrSelectedItem = Folha1.cmbComboBox.Value |
A seleção de usuários está no atributo Valor do Sheet1.cmbComboBox objeto. Este valor é atribuído à variável strSelectedItem:
Imagem 6. Obtenha um valor selecionado da ComboBox em VBA
Nós selecionamos Julia no ComboBox e execute o procedimento. Como você pode ver na Imagem 5, o valor do strSelectedItem é Julia, que é o valor que selecionamos. Agora você pode processar essa variável mais adiante no código.
Limpar uma ComboBox
Se você deseja limpar uma ComboBox no VBA, você precisa usar Claro método de Sheet1.lstComboBox objeto. Isso excluirá todos os itens da ComboBox. Aqui está o código:
1 | Sheet1.cmbComboBox.Clear |
Quando executamos o código, obtemos o ComboBox vazio:
Imagem 7. Limpe o ComboBox
Use uma ComboBox em um formulário de usuário
Como mencionamos, o Combobox é mais frequentemente usado em Userforms. Para explicar como você pode fazer isso, primeiro inseriremos um formulário de usuário. No editor VBA, clique com o botão direito no nome do módulo, clique em Inserir e escolher UserForm:
Imagem 8. Insira um formulário de usuário
Para exibir os controles de inserção, você precisa habilitar o Caixa de ferramentas. Para fazer isso, clique noCaixa de ferramentas ícone na barra de ferramentas. Depois disso, você terá as janelas com todos os controles disponíveis. Você pode clicar em Caixa combo para criá-lo no formulário do usuário.
Imagem 9. Insira uma ComboBox no formulário do usuário
Vamos nomear o ComboBox cmbComboBox. Para preenchê-lo com valores, precisamos colocar o seguinte código no método Inicializar do objeto UserForm:
12345678910111213 | Sub UserForm_Initialize privado ()Com UserForm1.cmbComboBox.Adicionar item "John".Adicionar item "Michael".Adicionar item "Jennifer".Adicionar item "Lilly".Adicionar item "Robert"Terminar comEnd Sub |
Este código é acionado sempre que um usuário executa o Userform e preenche o Combobox com estes 5 nomes:
Imagem 10. O ComboBox com valores no formulário do usuário
Se você deseja obter o valor selecionado do ComboBox, você precisa usar a mesma lógica para o Combobox em uma planilha, que é explicada anteriormente neste artigo.