Требуется макрос, определяющий на какой из многих объектов-AutoShape, расположенных на листе, выполнился щелчок мышью. Итогом макроса должен быть msgbox с именем этой фигуры (или текста в нее вложенного). Прописывать процедуры для каждой из фигур не представляется возможным: во-первых, их достаточно много, во-вторых, некоторые фигуры динамически создаются (удаляются) иными процедурами.
Вот такая задача. Есть мысли?
Интерактивность AutoShape-объектов. Обработка событий
Модератор: Naeel Maqsudov
- Aent
- Сообщения: 1129
- Зарегистрирован: 01 окт 2006, 14:52
- Откуда: Saratov,Russia
- Контактная информация:
В PowerPoint это делается на раз
В Excel 2003 (в предположении что всем шейпам назначен макрос ClickAnyShape)
Обратите внимание что Application.Caller не идентичен ActiveSheet.Shapes(Application.Caller).Name
Код: Выделить всё
Sub Identify( oShp as Shape)
Msgbox oShp.Name, vbInformation+vbOkOnly
End Sub
Код: Выделить всё
Public Sub ClickAnyShape()
MsgBox ActiveSheet.Shapes(Application.Caller).Name & " (" & Application.Caller & ") Clicked"
End Sub
Да, речь идет об Excel-2007
Благодарю! Все отлично работает.
однако, возник еще один вопрос (опциональный): возможно ли подобную процедуру "повесить" на клик правой кнопкой мыши?
однако, возник еще один вопрос (опциональный): возможно ли подобную процедуру "повесить" на клик правой кнопкой мыши?