Следующий код демонстрирует, как можно динамически заполнять кадр в пользовательской форме элементами управления ...
В форме, которую я использовал, у меня был элемент управления фрейма с именем Frame1, поэтому в UserForm_Initialize вы вызываете Frame1.Controls.Add для встраивания элемента управления в фрейм. Вы можете установить элемент управления, который будет возвращен в переменную элемента управления WithEvents, которую вы определили в модуле кода UserForm, чтобы вы могли реагировать на события в любых элементах управления, которые вы хотите ...
Таким образом, с помощью этого метода вам нужно предварительно написать любой код события, который вы хотите для любых элементов управления, которые вы создаете ...
Также обратите внимание, что вы можете позиционировать и изменять размеры элементов управления, даже если свойства top, left, width и height не обязательно совпадают с intellisense ...
Private WithEvents Cmd As MSForms.CommandButton
Private WithEvents Lbl As MSForms.Label
Private Sub UserForm_Initialize()
Set Lbl = Frame1.Controls.Add("Forms.Label.1", "lbl1")
Lbl.Caption = "Foo"
Set Cmd = Frame1.Controls.Add("Forms.CommandButton.1", "cmd1")
End Sub
Private Sub Cmd_Click()
Cmd.Top = Cmd.Top + 5
End Sub
Private Sub Lbl_Click()
Lbl.Top = Lbl.Top + 5
End Sub