埃迪(Eddie)在工作表中添加了一个小的图形图像,并将宏绑定到该图像。单击图像后,将执行宏。 Eddie想知道是否可以在图像上添加标签或注释,以便当用户将鼠标指针悬停在图像上时,标签/注释会出现并告诉用户宏的功能。

您最初可能会认为可以将ScreenTip添加到图像,但是只有将超链接分配给它时,才能完成此操作。添加超链接(和ScreenTip)非常容易,但是您会发现超链接优先于宏,从而阻止了其运行。

这意味着您需要寻找其他方法来解决该问题。

不幸的是,没有简单的方法可以创建这种类型的ScreenTip,但是有两种方法可以完成此任务。您可以做的一件事是在工作表中添加一个命令按钮,然后将图像分配给该按钮。然后将整个图像用作按钮。当您单击按钮时,它将执行CommandButton1_Click事件处理程序(假设您使用命令按钮的默认名称)。

接下来,您需要创建一个文本框,该文本框近似于ScreenTip的外观。实际上,与常规的ScreenTip相比,该文本框为您提供了更多的自由度,因为它可以按照您希望的任何方式进行格式化,并且可以包含您想要的任何解释性文本。您需要做的就是确保为文本框指定一个唯一的名称,例如“ MyShape”。 (您可以通过选择文本框的名称,然后在工作表区域左上角的“名称”框中更改名称)。

放置命令按钮和文本框后,右键单击命令按钮,然后选择显示命令按钮的代码窗口。然后,将以下代码添加到代码窗口:

Private Sub CommandButton1_Click()

'Call your regular macro here     Hide_Shape End Sub
Private Sub CommandButton1_MouseMove( _     ByVal Button As Integer, ByVal Shift As Integer, _     ByVal X As Single, ByVal Y As Single)

Display_and_Hide_Shape End Sub

您需要修改该Click事件处理程序才能调用常规宏代码。将鼠标移到命令按钮上时,将执行MouseMove代码。在这种情况下,代码将显示您创建的文本框。

接下来,将以下宏插入到标准宏模块中。这两个宏显示和隐藏您创建的文本框形状。请注意,第一个宏使用OnTime方法在形状第一次显示后两秒钟自动隐藏形状。

Sub Display_and_Hide_Shape()

ActiveSheet.Shapes("MyShape").Visible = True '   adjust time     Application.OnTime Now + TimeValue("00:00:02"), "Hide_Shape"

End Sub
Sub Hide_Shape()

ActiveSheet.Shapes("MyShape").Visible = False End Sub

放置所有宏后,只需将鼠标指针移到命令按钮图像上即可。文本框应在两秒钟后消失,仅在将鼠标再次移到图像上方时重新出现。

另一种方法是将图片嵌入图表对象中,使用要在屏幕提示中显示的任何文本来命名图片,然后将宏分配给图表对象。这听起来可能有点令人困惑,但是通过执行以下一般步骤相对容易做到:

。创建一个空白图表对象。您可以通过简单地选择一个空白单元格,选择插入图表并立即单击“完成”按钮来执行此操作。该图表将不包含任何内容,这就是为什么它是“空白图表对象”的原因。

。接下来将图片添加到图表对象。只需将图片复制到剪贴板,然后选择空白图表对象(您在步骤1中创建了它),然后粘贴剪贴板的内容。

。调整图表对象和图表对象中图片的大小,以使其代表您的需求。

。选择图表对象中的图片,然后通过更改工作表区域左上角的“名称”框中的名称为图片命名。此名称应该是您要显示为屏幕提示的文本。

。现在,通过右键单击统计图对象并选择“分配宏”,将您的宏分配给统计图对象(而不是统计图对象中的图片)。

而已。现在,当您将鼠标指针移到图像上时,图像名称将显示为屏幕提示,如果单击,则会执行分配给图表对象的宏。

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(3294)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本: