Adicionando controles dinamicamente no VBA

Quando as aplicações se tornam avançadas, algumas tarefas tornam-se necessárias no VBA, entre elas a manipulação de controles por meio de código. Alterar as propriedades é uma tarefas relativamente fácil, porém é mais interessante a adição e remoção destes controles.

O exemplo de código abaixo adiciona um controle TextBox dentro de um UserForm:

Private Sub Adiciona_TextBox()    
    'declara no novo controle
    Dim novoTextBox As Control
    'instancia o novo controle do tipo textbox e o adiciona ao UserForm
    Set novoTextBox = Me.Controls.Add("Forms.TextBox.1", "NovoTextBox", True)
    'seta algumas propriedades
    With novoTextBox
        .Width = 72
        .Height = 18
        .Top = 20
        .Left = 20
        .ZOrder (0)
    End With
End Sub

Após a adiçao, é fácil pegar o controle com um Me.Controls(“NovoTextBox”) para trabalhar com suas propriedades. Obviamente outros controles podem ser adicionados. Uma lista dos possíveis pode ser vista abaixo:

CheckBox: Forms.CheckBox.1
ComboBox: Forms.ComboBox.1
CommandButton: Forms.CommandButton.1
Frame: Forms.Frame.1
Image: Forms.Image.1
Label: Forms.Label.1
ListBox: Forms.ListBox.1
MultiPage: Forms.MultiPage.1
OptionButton: Forms.OptionButton.1
ScrollBar: Forms.ScrollBar.1
SpinButton: Forms.SpinButton.1
TabStrip: Forms.TabStrip.1
TextBox: Forms.TextBox.1
ToggleButton: Forms.ToggleButton.1

Abraços

Tomás Vásquez

Comentários

comentários

3 thoughts on “Adicionando controles dinamicamente no VBA”

  1. Olá, sou novo no VBA e não estou conseguindo fazer este comando funcionar.
    Eu estou inserindo em um UserForm e executando.Existe alguma configuração para que este código rode? Ou estou cometendo uma gafe de principiante? Rsrs

    Abraço

Comments are closed.