Новости:

Прикрепить к сообщению можно только файлы xls, gif, jpg, rar, zip,7z, bas, frm, cls, doc размером до 150 Кб.

Главное меню

Как создать массив элементов управления?

Автор Олег*, 29.07.2012, 12:31

« назад - далее »

Олег*

Добрый день!

Столкнулся с такой проблемой, точнее с отличием программирования в среде VB6 и VBA.

Чтобы создать массив элементов управления в среде VB6 достаточно просто скопировать данный элемент (copy) и вставить (paste) его на ту же самую форму. В этот момент ты сразу же получаешь сообщение с предупреждением-предложением "Вы уже имеете элемент управления с таким именем. Вы хотите создать массив элементов управления?".  После этого достаточно кликнуть по кнопке "ОК" и массив будет создан автоматически, причем одному из этих элементов будет автоматически назначено свойство Index, равное нулю, а другому  свойство Index, равное единице.

Сейчас понадобилось сделать то же самое в Экселе, но оказалось, что после проделывания вышеописанных действий массив не создается, а просто создается новый элемент управления с уникальным именем, например Label4 (если Label1, Label2 и Label3 уже имеются на данной форме).

Теперь вопрос.
Можно ли  в среде VBA Excel создавать массивы элементов управления во время "design time", или можно только во время "run time", или вообще нельзя?
Муж это единственный зарегенный юзер, а все остальные это хакеры :)

Prist

В режиме реального времени нереально(простите за тафталогию). VBA это урезанная версия VB со своими недостатками. Массив в нем можно создать только уже внутри процедуры программно, занося каждый элемент в этот самый массив.
А для каких целей это необходимо? Если любопытства ради - то оно удовлетворено. А если хотите проще обратиться к группам элементов - может это подойдет? Как быстро заполнить/очистить элементы на форме(TextBox-ы, ComboBox-ы)
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
www.excel-vba.ru
Просто СПАСИБО [+оказать+]
Считаешь СПАСИБО мало? Яндекс.Деньги: 41001332272872; WM: R298726502453