программно добавить элементы из базы данных в многоколоночным ListBox с помощью этого кода:Автоматически адаптировать ширину столбца ListBox
Do While (Not rs.EOF)
ExistingSheetsListBox.AddItem
ExistingSheetsListBox.List(i, 0) = rs.Fields(0)
ExistingSheetsListBox.List(i, 1) = rs.Fields(1)
ExistingSheetsListBox.List(i, 2) = rs.Fields(2)
ExistingSheetsListBox.List(i, 3) = rs.Fields(3)
ExistingSheetsListBox.List(i, 4) = rs.Fields(4)
i = i + 1
rs.MoveNext
Loop
включение в ListBox прекрасно работает, но ширина колонки не всегда адаптированы к длина вставленных в него элементов, я хотел бы знать, как я могу сделать так, чтобы ширина столбца каждого столбца была адаптирована к тексту, вставленному в него.
EDIT: Я использовал решение, предлагаемое разработчиками @Excel с фрагментом кода, данным @HarveyFrench.
Вы можете сделать это в .Net, но я не думаю, что вы можете в VBA. Вам нужно будет выработать ширину, требуемую самой длинной записью, а затем установить ее на это значение во время выполнения. –
Существует довольно сложный способ обхода [здесь] (http://www.jkp-ads.com/Articles/AutoSizeListBox01.asp), который включает использование скрытой метки, которая устанавливается в самый длинный элемент в каждом столбце, а затем свойство width считывается с этой метки и используется для определения размера столбца списка. – Soulfire