Техника мышки VBA PowerPoint не вызывается - PullRequest
0 голосов
/ 10 декабря 2018

Я считаю, что у меня есть проблема с макросами powerpoint, которая мешает мне получить желаемое поведение.Я пытаюсь добиться эффекта наведения мыши / наведения мышки на слайде PowerPoint.

Идея состоит в том, чтобы получить три квадратные формы, менять цвет линий каждого независимо при наведении курсора ...

shape line changes on hover

изменение формы линии при наведении курсора

... затем возврат ее в исходное состояние при наведении мыши.Я знаю, что PP не поддерживает mouseout, поэтому я пытаюсь использовать взлом мышью, состоящий из другой формы с макросом mouseout, упомянутым здесь -

shape lines reset when mouse is over background shape

линии линий сбрасываются, когда мышь находится над фоновой формой

Я пытаюсь использовать следующие макросы для достижения этой цели.shapeHover () срабатывает, когда мышь находится на квадрате.MouseOutHack () должен запускаться, когда мышь находится на фоне фона, но линии не сбрасываются в исходный цвет.Есть ли проблема с моими макросами?Оба находятся в одном модуле.

Option Explicit

Public myShape As Shape ' Global reference to mouse over shape

Sub shapeHover(oShp As Shape)
  Set myShape = oShp
  With oShp
    ' Change the properties you need here
    oShp.Line.ForeColor.RGB = RGB(0, 0, 0)
  End With
End Sub

Sub MouseOutHack()
  With oShp
    ' Reset the properties you need here
    oShp.Line.ForeColor.RGB = RGB(255, 0, 0)
  End With
End Sub

1 Ответ

0 голосов
/ 10 декабря 2018

Как сказал Ахмед АС ... используйте myShape в MouseOutHack и используйте операторы With, если вы собираетесь их использовать ... и тогда это сработает.

Option Explicit

Public myShape As Shape ' Global reference to mouse over shape

Sub shapeHover(oShp As Shape)
  Set myShape = oShp
  With oShp
    .Line.ForeColor.RGB = RGB(0, 0, 0)
  End With
End Sub

Sub MouseOutHack()
  With myShape
    .Line.ForeColor.RGB = RGB(255, 0, 0)
  End With
End Sub
...