在很多场合,我们都能看到这样的效果。当鼠标在一个元素上移动时,这个元素会变成另一种颜色,从而达到强调的效果。接下来,让我们意识到,当鼠标移动到用户表单的按钮时,它会使用颜色高亮来使用户表单更加生动,如下图1所示。
图1
事实上,您在图1中看到的按钮不是构建在用户表单中的传统命令按钮,而是使用图像控件制作的。由于图像是静态的,在操作过程中不能改变颜色,所以每个按钮由两个图像组成,一个图像代表鼠标悬浮在按钮上的状态,另一个图像代表鼠标不悬浮在按钮上的状态。然后用VBA码根据鼠标的位置来切换这两幅图像的可视性,从而实现按钮的动态变化。
在Excel工作表中创建按钮图像。
使用文本框在Excel中创建按钮图像。在本例中,绿色和白色/灰色格式将用于指示用户是否将鼠标悬停在特定按钮上。下图是我为按钮图像制作的文本框。
图2。
这里需要注意的是,四个文本框的大小和格式必须完全相同。
在用户表单中绘制图像按钮。
在VBE中,插入一个用户表单,在其中放置一个标签控件、一个文本框控件和一个图像控件,并将其调整到合适的大小和排列,如下图3所示。
图3。
在Excel工作表中,选择并复制对应的文本框(此处为绿色背景的“确定”文本框)。然后,回到VBE用户表单,选择图像控件,在左侧的“属性”窗口中找到“图片”,选择其内容(无),然后按ctrl v .此时,该属性的值从“(无)”变为“(位图)”。同时,您可以看到图像出现在控件中,如下图4所示。
图4
在图像控件仍然被选中的情况下,在其属性窗口中将反风格设置为0-fmBorderStyleNone,将反风格设置为0-fmbackstyletransient,如下图5所示。
图5
复制刚刚绘制的图像控件,如下图6所示。
图6
当鼠标不在按钮上时,此图像将编码状态。复制工作表中对应的文本框(这里是白色背景的“确定”文本框),然后按照上面的操作粘贴到控件的Picture属性中,得到一个白色背景的灰色字符的图像按钮,如下图7所示。
图7
然后,将其拖放到绿色背景上带有白色字符的按钮上。
结果如下图8所示。
图8
根据上面的操作,创建一个名为“取消”的图像按钮,如下图9所示。
图9
为便于在代码中使用,请分别命名这些按钮:
白色ok按钮:OKButtonInactive。
绿色OKButton: ok按钮。
白色取消按钮:取消按钮。
绿色取消按钮:取消按钮。
写代码
使用MouseMove事件来响应鼠标操作。当鼠标移动到特定控件时,此事件将执行该控件中的代码。
以下是确定按钮的鼠标移动事件代码:
私有子按钮非活动_鼠标移动(按值按钮作为整数,按值移动作为整数,按值X作为单个,按值Y作为单个)我。取消按钮无效。可见=真实的我。确定按钮无效。可见=假端接头
当鼠标移到“确定”按钮上时,绿色按钮显示,白色按钮隐藏。
下面是取消按钮的鼠标移动事件代码:
私有子控件按钮非活动_鼠标移动(按值按钮作为整数,按值移动作为整数,按值X作为单个,按值Y作为单个)我。取消按钮无效。可见=假我。确定按钮无效。可见=真端接头
当鼠标移到取消按钮上时,绿色按钮显示,白色按钮隐藏。