我想让excel用鼠标悬停事件引用带有活动标签的形状,以弹出gif

时间:2018-08-08 18:02:15

标签: excel vba image mouseover labels

因此,我正在制作流程图,对于流程图中的每个形状/对象,我将使用一个活动标签,将其设置为透明并删除所有标题,因此出于所有意图和目的,它将是空白标签在形状/对象上。当我在vba中打开标签时,它将显示为click事件,然后将其更改为mouse over事件。我遇到的问题是我希望该鼠标悬停事件使用计算机中其他驱动器上的gif(最佳方案)或图片(最坏的方案)。

例如,假设我有一个名为“流程图”的文件夹。在此文件夹中,我还有一个名为“ Gifs”的文件夹和一个名为FlowChartGifs.xlsm的excel文件。然后,excel文件将具有形状/对象上方标签中的mouseover属性,以从其他文件夹中调用特定的gif。我不知道这是否重要,但是它将是一个网络文件夹。

我还需要一个mouse off事件(excel中没有一个事件,因此需要创建它)。我确实对此有一个想法,但是基本上要做的是在整个流程图中使用一个大矩形,并且在没有形状的任何地方,它将取消所有事件。这样,一旦将光标移出某个形状,鼠标悬停事件就会取消(为安全起见)。

到目前为止,我有一点可悲的代码:

Private Sub Label1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, 
ByVal X As Single, ByVal Y As Single)


Sheet1.Shapes("Z:\Users\ThisGuy\Pictures\situation.gif").Visible = True


End Sub

任何帮助解决此问题的方法都将是最有价值的。请注意,您不必创建循环,因为我将手动将图片分配给我拥有的不同流程图,因为流程图的不同部分会相互引用。我只需要代码来激活带有gif /图片的弹出式窗口,当您不再将鼠标悬停在其上时,该窗口便会停用。

如果您想要一些加分,如果有一种方法可以格式化gif /图片的大小以填充更多的屏幕,那就太好了。最后,我计划使鼠标悬停在mouseover标签内时不可见。

在此先感谢您有任何疑问!

0 个答案:

没有答案