Добавляйте случайные изображения к ярлыкам

UserForm 2 = 36 кнопок (от btn1 до btn36). На каждой кнопке есть изображение. Когда я нажимаю кнопку «ДОБАВИТЬ», я хотел бы, чтобы три случайных изображения, которые находятся на кнопках, отображались в трех метках UserForm 1, где написано «Случайное изображение 1».

Прямо сейчас, когда я нажимаю кнопку ДОБАВИТЬ, открывается форма UserForm1. Когда я нажимаю OK на форме UserForm1, я хотел бы указать, какая  три кнопки были вставлены в UserForm1 электронной таблицы.


person Mike    schedule 11.04.2011    source источник
comment
Я не могу разобраться в вашем вопросе. Я предлагаю вам предоставить скриншоты вашей формы, один хорошо структурированный вопрос и способы, которыми вы пытались решить их самостоятельно.   -  person Alain    schedule 11.04.2011
comment
@Alain: я добавил пример скриншота того, что я пытаюсь сделать.   -  person Mike    schedule 11.04.2011


Ответы (1)


Чтобы выбрать случайное изображение кнопки, вам нужно использовать коллекцию Me.Controls на форме. Например:

Dim cCont As Control
For Each cCont In Me.Controls
    'DO STUFF HERE
Next cCont

Если вы поместите часы на переменную cCont, вы сможете увидеть все свойства каждого элемента управления. Во-первых, вам нужно будет отфильтровать элементы управления, которые являются кнопками. Затем вам нужно будет посмотреть свойство изображения для этой кнопки, чтобы захватить его и установить во второй форме.

Наконец, чтобы ввести случайный элемент, просто используйте функцию Rand(). Это вернет случайное число от 0 до 1. Если вы умножите это число на количество элементов управления в Me.Controls и округлите его до целого числа, вы получите случайное число элементов управления. Просто убедитесь, что элемент управления, который вы проиндексировали, является кнопкой, и вы можете использовать изображение этой кнопки в качестве одного из случайных изображений.

person Alain    schedule 11.04.2011