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
我认为我的 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