Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Управление элементами Shapes / 7 сообщений из 7, страница 1 из 1
22.02.2013, 02:10
    #38161627
josefa-nicole
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Управление элементами Shapes
Здравствуйте, помогите советом.
На листе Excel программно созданы 40 элементов
ActiveSheet.Shapes.Range(Array("O1")), ActiveSheet.Shapes.Range(Array("O2")), ActiveSheet.Shapes.Range(Array("O3")), ....
Необходимо чтобы при нажатии на любой из объектов < О2_Click() > выходило сообщение о номере выбранного объекта.
Ничего лучше придумать не смогла как

Private Sub O1_Click()
MsgBox "Object N 1"
End Sub

Private Sub O2_Click()
MsgBox "Object N 2"
End Sub

Private Sub O3_Click()
MsgBox "Object N 3"
End Sub

и 40 повторений...

Помогите советом как определить какой из элементов был нажат или выделен.
Можно ли проверять что-нибудь типа --- ActiveSheet.Shapes.Range(Array("O1")).Selection =True
...
Рейтинг: 0 / 0
22.02.2013, 08:41
    #38161704
Дмит
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Управление элементами Shapes
Можно назначить один макрос на все Shape.
В макросе - MsgBox Application.Caller покажет - кто его запустил.
...
Рейтинг: 0 / 0
22.02.2013, 13:23
    #38162178
josefa-nicole
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Управление элементами Shapes
Дмит,

спасибо за ответ.
Проблема в том,что назначить один макрос не получается. Все объекты выделяю и возможность назначить макрос не подсвечивается. Может это быть потому что Shape Image-картинки?
...
Рейтинг: 0 / 0
22.02.2013, 18:53
    #38162727
Казанский
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Управление элементами Shapes
Это элементы управления ActiveX? Тогда Caller не поможет.
Почитайте тут: http://www.cyberforum.ru/vba/thread361933.html
...
Рейтинг: 0 / 0
27.02.2013, 14:43
    #38168067
josefa-nicole
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Управление элементами Shapes
Казанский,
спасибо вам!
Все посмотрела, только не могу выделить имя элемента O3_Click(),
чтобы потом вывести его в сообщение MsgBox "Object N 3".
...
Рейтинг: 0 / 0
27.02.2013, 15:10
    #38168143
josefa-nicole
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Управление элементами Shapes
....вернее сказать какое условие можно поставить, чтобы выделял из всех объектов на листе только тот который нажали.


Public Sub All_print_all_Rnk()
Dim s$
For Each x In colCB

If x.cb Then MsgBox x.cb.Name 'не работает, т.к. x.cb. это Image и проверить "True"/ "False" не получается
Next
...
Рейтинг: 0 / 0
28.02.2013, 01:34
    #38168893
josefa-nicole
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Управление элементами Shapes
Казанский,
спасибо за идею. Разобралась со всем.
Использовала еще
http://www.excel-vba.ru/chto-umeet-excel/kak-bystro-zapolnitochistit-elementy-na-formetextbox-y-combobox-y/
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Управление элементами Shapes / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]