|
Управление элементами Shapes
|
|||
---|---|---|---|
#18+
Здравствуйте, помогите советом. На листе 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 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.02.2013, 02:10 |
|
Управление элементами Shapes
|
|||
---|---|---|---|
#18+
Можно назначить один макрос на все Shape. В макросе - MsgBox Application.Caller покажет - кто его запустил. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.02.2013, 08:41 |
|
Управление элементами Shapes
|
|||
---|---|---|---|
#18+
Дмит, спасибо за ответ. Проблема в том,что назначить один макрос не получается. Все объекты выделяю и возможность назначить макрос не подсвечивается. Может это быть потому что Shape Image-картинки? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.02.2013, 13:23 |
|
Управление элементами Shapes
|
|||
---|---|---|---|
#18+
Это элементы управления ActiveX? Тогда Caller не поможет. Почитайте тут: http://www.cyberforum.ru/vba/thread361933.html ... |
|||
:
Нравится:
Не нравится:
|
|||
22.02.2013, 18:53 |
|
Управление элементами Shapes
|
|||
---|---|---|---|
#18+
Казанский, спасибо вам! Все посмотрела, только не могу выделить имя элемента O3_Click(), чтобы потом вывести его в сообщение MsgBox "Object N 3". ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2013, 14:43 |
|
Управление элементами Shapes
|
|||
---|---|---|---|
#18+
....вернее сказать какое условие можно поставить, чтобы выделял из всех объектов на листе только тот который нажали. 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 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2013, 15:10 |
|
Управление элементами Shapes
|
|||
---|---|---|---|
#18+
Казанский, спасибо за идею. Разобралась со всем. Использовала еще http://www.excel-vba.ru/chto-umeet-excel/kak-bystro-zapolnitochistit-elementy-na-formetextbox-y-combobox-y/ ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2013, 01:34 |
|
|
start [/forum/topic.php?desktop=1&fid=60&tid=2157124]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 141ms |
0 / 0 |