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 |
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