No VBA, você pode criar um Listbox onde um usuário pode escolher uma das opções listadas. A caixa de listagem é freqüentemente usada em formulários do usuário, mas também pode ser usada em uma planilha. Neste tutorial, você aprenderá como criar, preencher e excluir uma caixa de listagem. Você também verá como obter uma escolha do usuário no VBA e usá-la no código.
Se você deseja aprender a criar uma ComboBox, clique aqui: VBA ComboBox
Se você quiser aprender como criar uma caixa de seleção, clique aqui: Caixa de seleção VBA
Crie uma caixa de listagem
Para inserir uma caixa de listagem na planilha, você precisa ir para o Guia do desenvolvedor, clique Inserir e em Controles ActiveX escolha List Box:
Imagem 1. Insira uma caixa de listagem na planilha
Ao selecionar a caixa de listagem que inseriu, você pode clicar em Propriedades debaixo de Guia do desenvolvedor:
Imagem 2. Alterar as propriedades da caixa de listagem
Aqui você pode definir diferentes propriedades da caixa de listagem. Para o início, mudamos o atributo Nome para lstListBox. Agora, podemos usar a caixa de listagem com este nome no código VBA.
Preencher uma caixa de listagem no código VBA
Primeiro, precisamos preencher a caixa de listagem com valores. Na maioria dos casos, uma caixa de listagem precisa ser preenchida quando a pasta de trabalho é aberta. Por causa disso, precisamos colocar um código para preencher a caixa de listagem 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.lstListBox.Adicionar item "John".Adicionar item "Michael".Adicionar item "Jennifer".Adicionar item "Lilly".Adicionar item "Robert"Terminar com |
Como você pode ver na Imagem 3, preenchemos nossa caixa de listagem com 5 nomes (John, Michael, Jennifer, Lilly e Robert):
Imagem 3. Preencher a caixa de listagem em VBA
Preencher uma caixa de listagem a partir de um intervalo de células
Outra forma possível de preencher uma caixa de listagem é permitir que um usuário faça isso. Uma caixa de listagem pode ser vinculada ao intervalo de células. Portanto, toda vez que um usuário inserir um novo valor no intervalo de células, a caixa de listagem será atualizada com esse valor.
Se você quiser habilitar isso, você deve ir para o Propriedades da ListBox e definir o atributo ListFillRange:
Imagem 4. Preencha a caixa de listagem a partir do intervalo de células
Vinculamos nossa caixa de listagem ao intervalo E2: E5, onde colocamos os nomes que desejamos (Nathan, Harry, George, Roberta). Como resultado, a caixa de listagem agora é preenchida com esses nomes.
Obtenha um item selecionado de uma caixa de listagem no VBA
O objetivo de uma caixa de listagem é obter a escolha do usuário. Para recuperar um valor selecionado por um usuário, você precisa usar este código:
123 | Dim strSelectedItem As VariantstrSelectedItem = Sheet1.lstListBox.Value |
A seleção de usuários está no atributo Valor do Sheet1.lstListbox objeto. Este valor é atribuído à variável strSelectedItem:
Imagem 5. Obtenha um valor selecionado da caixa de listagem em VBA
Nós selecionamos atormentar na caixa de listagem e executou o procedimento. Como você pode ver na Imagem 5, o valor do strSelectedItem é atormentar, que é o valor que selecionamos. Além disso, você pode processar essa variável no código.
Limpar uma caixa de listagem
Para limpar uma caixa de listagem no VBA, você precisa usar Claro método de Sheet1.lstListBox objeto. Isso excluirá todos os itens da caixa de listagem. Aqui está o código:
1 | Sheet1.lstListBox.Clear |
Quando executamos o código, obtemos a caixa de listagem vazia:
Imagem 6. Limpe a caixa de listagem
Use uma caixa de listagem em um formulário de usuário
Como mencionamos, a caixa de listagem é usada com mais frequência em formulários do usuário. 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 7. 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 ListBox para criá-lo no formulário do usuário.
Imagem 8. Insira uma caixa de listagem 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.lstListBox.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 formulário de usuário e preenche a caixa de listagem com estes 5 nomes:
Imagem 9. A caixa de listagem 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.