Страница 1 из 2

Как получить имя объекта на котором кликнули?

Добавлено: 26 фев 2010, 17:59
RomaS
Что-то ничего в инете не найду, может запрос не так формулирую.
В общем, в книге эксель на форме есть сотня Label, как получить name или caption того элемента, по которому щелкнули мышкой или еще как-то нужный элемент идентифицировать, что кликнули именно его?
Что-то ничего, в голову не приходит, кроме как в событии label_click каждого элемента присваивать какой-нибудь переменной уникальное значение затем передавать в вызываемую функцию... но ведь это же долго и некрасиво)
Подскажите?

Re: Как получить имя объекта на котором кликнули?

Добавлено: 26 фев 2010, 22:05
Busine2009
RomaS
для каждого Label написать код:

Код: Выделить всё

Private Sub Label1_Click()
MsgBox Label1.Name
End Sub

Re: Как получить имя объекта на котором кликнули?

Добавлено: 27 фев 2010, 08:24
RomaS
вот именно от этого и хотелось уйти. писать для каждого. а их сотня...

Ну тоесть в событии labelX_Click()
должно выполняться что-то типа: I = Useform1.ActiveControl.Name
А вот есть ли в ВБ что-то подобное??

Re: Как получить имя объекта на котором кликнули?

Добавлено: 27 фев 2010, 21:08
Busine2009
RomaS
да я понял твою идею, подумаю.

Re: Как получить имя объекта на котором кликнули?

Добавлено: 28 фев 2010, 17:58
Aent
Почитайте про классы в VBA и использование ключевого слова WithEvents в объявлении переменных.
На форуме куча примеров.

Re: Как получить имя объекта на котором кликнули?

Добавлено: 01 мар 2010, 07:00
Avsha
>кроме как в событии label_click каждого элемента присваивать какой-нибудь переменной уникальное значение затем передавать в вызываемую функцию... но ведь это же долго и некрасиво)

Сколько их штук на форме? а создавать их на форме долго? красиво? :)

Re: Как получить имя объекта на котором кликнули?

Добавлено: 01 мар 2010, 22:32
Busine2009
Aent
пацак - дай ещё ключевые слова.

Re: Как получить имя объекта на котором кликнули?

Добавлено: 02 мар 2010, 06:46
EducatedFool
Примеры использования классов для решения подобных задач можно поглядеть здесь:
http://programmersforum.ru/showpost.php ... ostcount=8
http://www.programmersforum.ru/showpost ... ostcount=9

Re: Как получить имя объекта на котором кликнули?

Добавлено: 02 мар 2010, 06:52
RomaS
Создавались они копипастом))) их caption динамически меняются в зависимости от некоторых параметров, а при клике на каком-то появляется контекстное меню, вот для этого меню и надо идентифицировать объект под курсором...

Aent, EducatedFool, за подсказку спасибо, буду искать.... пацак))))))

Re: Как получить имя объекта на котором кликнули?

Добавлено: 23 мар 2010, 11:32
nilem
Если тема еще актуальна, то есть один примерчик .xlsm от Уокенбаха - на форме несколько кнопок, после щелчка на каждой из них появляется сообщение с именем и заголовком кнопки. Куда прислать?