Loop through Controls in Excel VBA - Easy Excel Macros

Índice

Com apenas algumas linhas de código, podemos facilmente loop pelos controles em um Formulário de usuário do Excel VBA. O formulário de usuário que vamos criar tem a seguinte aparência:

Para criar este formulário de usuário, execute as seguintes etapas.

1. Abra o Editor do Visual Basic. Se o Project Explorer não estiver visível, clique em View, Project Explorer.

2. Clique em Inserir, Formulário do usuário. Se a caixa de ferramentas não aparecer automaticamente, clique em Exibir, Caixa de ferramentas. Sua tela deve ser configurada conforme abaixo.

3. Adicione o rótulo, as caixas de seleção (a primeira na parte superior, a segunda abaixo da primeira e assim por diante) e o botão de comando. Depois de concluído, o resultado deve ser consistente com a imagem do formulário do usuário mostrada anteriormente. Por exemplo, crie um controle de caixa de seleção clicando em CheckBox na caixa de ferramentas. Em seguida, você pode arrastar uma caixa de seleção no formulário do usuário.

4. Você pode alterar os nomes e as legendas dos controles. Os nomes são usados ​​no código VBA do Excel. As legendas são aquelas que aparecem na tela. É uma boa prática alterar os nomes dos controles, mas não é necessário aqui porque temos apenas alguns controles neste exemplo. Para alterar a legenda do formulário do usuário, rótulo, caixas de seleção e botão de comando, clique em Exibir, Janela de propriedades e clique em cada controle.

5. Para mostrar o formulário de usuário, coloque um botão de comando em sua planilha e adicione a seguinte linha de código:

Private Sub CommandButton1_Click ()
UserForm1.Show
End Sub

Agora criamos a primeira parte do formulário de usuário. Embora já pareça legal, nada acontecerá ainda quando clicarmos no botão Limpar.

6. Abra o Editor do Visual Basic.

7. No Project Explorer, clique duas vezes em UserForm1.

8. Clique duas vezes no botão Limpar.

9. Adicione as seguintes linhas de código:

Private Sub CommandButton1_Click ()
Dim contr As control
Para cada controle em UserForm1.Controls
If TypeName (contr) = "CheckBox" Then
contr.Value = False
Fim se
Próximo
End Sub

Explicação: O Excel VBA percorre todos os controles no formulário do usuário. A função TypeName é usada para filtrar os controles da caixa de seleção. Se for um controle de caixa de seleção, o Excel VBA desmarca a caixa de seleção. contr é escolhido aleatoriamente aqui, você pode usar qualquer nome. Lembre-se de referir-se a esse nome no restante do código.

Resultado quando você clica no botão Limpar:

Você vai ajudar o desenvolvimento do site, compartilhando a página com seus amigos

wave wave wave wave wave