VBA 未调用 PowerPoint Mouseout 技术

VBA PowerPoint Mouseout Technique Not Called

我认为我的 powerpoint 宏有问题,这使我无法获得我想要的行为。我正在尝试在 powerpoint 幻灯片中实现 mouseover/mouseout 效果。

想法是给定三个正方形,在悬停时独立改变每个正方形的线条颜色...

悬停时形状线发生变化

...然后 return 它在鼠标移出时恢复到原始状态。我知道 PP 不支持 mouseout,所以我尝试使用 -

鼠标悬停在背景形状上时形状线条重置

我正在尝试使用以下宏来实现此目的。 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

正如 Ahmed AU 所说...在 MouseOutHack 中使用 myShape 并在您要使用它们时利用 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