如何在鼠标悬停在 Excel 用户窗体上时显示包含图像的弹出窗口

How To Display a Popup Containing an Image in Excel Userform When Mouse is Hovering on It

考虑以下因素:
我有一个 excel 用户表单,其中包含已缩小尺寸的图像对象。 当用户将鼠标悬停在图像上时,我希望图像弹出并显示相同的图像,但以其原始大小显示。

其工作原理的一个示例是将文本添加到 ControlTipText 以及何时光标悬停在图像上,它会显示文本,但我希望它显示图像而不是文本。

会是什么样子

用户表单:

当光标悬停在图像上时:

我试过以下方法:
使用MouseMove函数,当光标在图像上时,它会显示该图像放大版本的另一个用户窗体。
我也试过使用计时器在几秒钟后关闭用户窗体。

这两种方法都不是用户友好的,因为用户必须自己关闭用户窗体或等待用户窗体自动关闭。

您可以在将鼠标悬停在缩略图上时调整主用户窗体的大小,以显示更大的图像。从这样布局的用户表单开始:

使用前,调整用户窗体的大小以隐藏大图像。

缩略图适合 width = 100,而完整形式适合 width = 340

向用户窗体添加类似以下内容的子项:

Private Sub Image1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    UpdateLargeImage UserForm1.Image1.Picture
End Sub
Private Sub Image2_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    UpdateLargeImage UserForm1.Image2.Picture
End Sub
Private Sub UpdateLargeImage(ByVal Image As Object)
    UserForm1.Width = 340
    UserForm1.Image3.Picture = Image
End Sub
Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    UserForm1.Width = 100
End Sub

您可以看到两个调整大小的命令,具体取决于鼠标移动到什么地方,还有一个通用子 UpdateLargeImage 显示较大的图像并将其设置为缩略图中的任何图像。


测试: