Excel 2010 VBA ActiveX Изменение размера - PullRequest
0 голосов
/ 21 сентября 2018

Привет! Я использую Excel 2010 с элементами управления ActiveX.Я знаю, что элементы управления ActiveX могут вызвать повреждение и случайное изменение размеров элементов управления.Эта проблема начинается, когда я меняю экраны.

Мне нужно иметь возможность добавлять элементы в элемент управления формы с помощью нажатой кнопки, а также мне нужен доступ к элементам в форме через VBA.

Мой вопрос заключается в том, как добавитьэлемент в список управления формы и как вы получаете к нему доступ и как вы его удаляете.

Мой код использует все активные компоненты x, но я хочу их переключить.Я не уверен, как установить имя в списке управления формой, чтобы даже получить доступ к нему в VBA.

Любая помощь будет потрясающей!

PS.Я использую Windows 7, Excel 2010

1 Ответ

0 голосов
/ 24 сентября 2018

Этот метод создает список времени выполнения.Вам просто нужно оставить место на 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...