Мне нужно создать ярлыки и кнопки динамически, а затем добавить их в кадр в пользовательской форме. Как мне это сделать? Похоже на это должно быть легче, чем на самом деле.Добавление элементов управления в рамку в пользовательской форме Excel с помощью VBA
ответ
Следующий код демонстрирует, как можно динамически заполнить кадр в UserForm с контрольной группой ...
В форме я использовал я имел контроль кадр с именем Frame1, поэтому в UserForm_Initialize вы звоните Frame1.Controls. Добавьте встроенный элемент управления в фрейм. Вы можете установить элемент управления, который возвращается в переменную управления 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
Мое изменение по теме выше. Это всего лишь для 4x4 кнопок. Создайте пользовательскую форму и добавьте ее в свой код. Те же самые понятия могут использоваться с вашими метками (или см. Предыдущий ответ):
Private cmdLots(20) As MSForms.CommandButton
Private Sub UserForm_Initialize()
For i = 1 To 4
For j = 1 To 4
k = i + (4 * j)
Set cmdLots(k) = UserForm2.Controls.Add("Forms.CommandButton.1", "cmd1")
With cmdLots(k)
.Top = i * 25
.Left = (j * 80) - 50
.BackColor = RGB(50 * i, 50 * j, 0)
.Caption = "i= " & i & " j= " & j
End With
Next j
Next i
End Sub
- 1. Перемещение элементов управления в увеличенном кадре в пользовательской форме Excel
- 2. Excel VBA: формат даты в пользовательской форме
- 3. VBA excel вычисление в пользовательской форме
- 4. Добавление элементов управления динамически в форме вопроса
- 5. Добавление элементов управления в наследуемой форме C#
- 6. Таймер в форме пользователя в Excel VBA
- 7. перейти на следующую страницу в пользовательской форме multipage excel VBA
- 8. Отключить ввод клавиатуры в пользовательской форме Excel
- 9. Excel Webbrowser Прокрутка в пользовательской форме
- 10. Вызов общедоступной подпрограммы в пользовательской форме Excel VBA
- 11. Назначение обработчиков событий для элементов управления в пользовательской форме, созданных динамически в VBA
- 12. Добавление элементов в блок управления Windows
- 13. Java AWT добавление элементов в существующую рамку
- 14. Поиск поля в пользовательской форме управления
- 15. Добавление элементов управления к пользовательской панели в окне дизайна
- 16. Группировка элементов управления в форме доступа
- 17. Использование VBA: Назначение значения для управления меткой на пользовательской форме
- 18. Добавление Excel ActiveX Control с помощью VBA
- 19. Условно добавление элементов управления Excel ListBox
- 20. Как показать выбранные данные в пользовательской форме с помощью excel VBA
- 21. Как обновить данные листа excel в пользовательской форме с помощью vba
- 22. Добавление элементов управления WPF с помощью VB
- 23. Добавление новых вкладок с помощью Excel VBA
- 24. Динамическое удаление/добавление элементов управления в форме Windows Forms
- 25. Добавление элементов управления динамически в форме Windows Forms
- 26. Активировать значение флажка, отправленное с листа Excel в пользовательской форме
- 27. Заполнение динамического раскрывающегося списка в форме Excel с помощью VBA
- 28. Альтернатива пользовательской форме Excel в листах google
- 29. VBA: Trigger событие в форме управления
- 30. excel отправить почтовый макрос в пользовательской форме
Почему '' 1 "' в конце имени класса в методе 'add'? – Triztian
Я не знаю. Я знаю, что это не сработает без этого. –
Мне бы очень хотелось знать, почему это должно быть «Forms.CommandButton.1» тоже – FinancialRadDeveloper