Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / MS PowerPoint VBA - как получить имя фигуры (shape) при наведении на нее мышкой? / 4 сообщений из 4, страница 1 из 1
27.02.2014, 11:43
    #38573913
SOULURAN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MS PowerPoint VBA - как получить имя фигуры (shape) при наведении на нее мышкой?
Здравствуйте! В презентации MS PowerPoint 2010 использую макросы на объекты типа shapes (фигуры), чтобы при наведении на них мышкой они подсвечивались (меняется толщина линии и ее цвет \ нет линии). Таких объектов 12 и все они имеют имена, как TR1 .. 12. Для каждой фигуры добавил собственный макрос FLASH_TR1 .. 12 через "Вставка - Действие - По наведению указателя мыши", потому как в каждом макросе жестко задано имя объекта.
Один из 12 аналогичных макросов:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
Sub FLASH_TR1()
Dim oSlide As Slide
Dim oShape As Shape
Dim A as Variant
Dim dis_vName As String
Dim vName As String
Set oSlide = Application.ActivePresentation.Slides(1)

vName = "TR1"
vColor = oSlide.Shapes.Item(vName).Line.Visible
A = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)

If vColor = 0 Then
' Включаем подсветку для текущего объекта
With oSlide.Shapes.Item(vName)
    .Line.Visible = msoTrue
    .Line.Weight = 5
    .Line.ForeColor.RGB = RGB(255, 255, 50)
End With

' Отключаем подсветку для других объектов
For i = 0 To 11
dis_vName = "TR" & A(i)
If dis_vName <> vName Then
With oSlide.Shapes.Item(dis_vName)
    .Line.Visible = msoFalse
End With
End If
Next

Else
' Отключаем подсветку для текущего объекта
With oSlide.Shapes.Item(vName)
    .Line.Visible = msoFalse
End With
End If

End Sub


Есть ли способ получить имя фигуры (shape), с которой запустился макрос при наведении на него мышкой, чтобы не плодить множество похожих скриптов, с жесткой привязкой к имени объекта.
...
Рейтинг: 0 / 0
27.02.2014, 12:50
    #38574006
_Дмит_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MS PowerPoint VBA - как получить имя фигуры (shape) при наведении на нее мышкой?
Sub Identify(oShp As Shape)
MsgBox oShp.Name, vbInformation + vbOKOnly
End Sub
...
Рейтинг: 0 / 0
27.02.2014, 13:05
    #38574039
SOULURAN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MS PowerPoint VBA - как получить имя фигуры (shape) при наведении на нее мышкой?
_Дмит_Sub Identify(oShp As Shape)
MsgBox oShp.Name, vbInformation + vbOKOnly
End Sub
Мой макрос запускается, но я не могу определить с какого объекта он запустился? А в вашем случае надо будет указать нужный мне объект задав его.
...
Рейтинг: 0 / 0
27.02.2014, 15:13
    #38574288
SOULURAN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MS PowerPoint VBA - как получить имя фигуры (shape) при наведении на нее мышкой?
_Дмит_Sub Identify(oShp As Shape)
MsgBox oShp.Name, vbInformation + vbOKOnly
End Sub
Млин, во я ступил! Все работает, спасибо тебе _Дмит_.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / MS PowerPoint VBA - как получить имя фигуры (shape) при наведении на нее мышкой? / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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