Этот метод создает список времени выполнения.Вам просто нужно оставить место на UserForm1
для этого.
Dim lb As msforms.ListBox
Set lb = UserForm1.Controls.Add("forms.listbox.1", "MyListBox1")
Это также хороший пример того, как обращаться к объекту (ActiveX).Обходной путь, чтобы избежать случайного / неожиданного изменения размера, вы можете намеренно регулярно запускать следующий фрагмент кода из кода:
If lb.width <> 100 Then ' or you can check other properties, too
lb.Top = 120
lb.Left = 40
lb.Width = 100
End If
Это также может применяться к другим объектам ActiveX, например:
If UserForm1.Width <> 200 Then
UserForm1.Width = 200
...
Вам просто нужно найти хорошее место в вашем коде, где этот фрагмент часто выполняется, а также определенно в UserForm_Initialize.Вы также можете установить другие свойства, такие как заголовок, табуляция и т. Д. Таким образом.
Для добавления и удаления элементов вам нужно использовать такие индексы:
lb.AddItem "First item", 1
lb.AddItem "Second item", 2
lb.AddItem "Third item", 3
lb.RemoveItem 2