VBA 工作表自带的Worksheet_SelectionChange过程可监控鼠标对单元格的点选,确定某单元格为“颜色产生器”,点选“颜色产生器”取其填充色,再次选择其他单元格或区域时用所取的填充色填充选区,如此即可模拟拾色器的取色及涂色效果(如上方视频展示)。
注:1.“颜色产生器”中的颜色使用RGB三原色混色而成,三原色颜色值使用随机数产生。
2. RGB混色所成的颜色值为长整形数据,可使用long型数据进行接收。
Step1. 功能实现简述
选定A1单元格为“颜色产生器”,并使用命令按钮控制使此单元格产生随机填充色。
A1随机填充色产生后,鼠标点选此单元格即可获得填充色的颜色值,之后再点击或框选非A1单元格即可实现涂色。
Step2. 命令按钮的添加及命名
如下图按①到③的顺序点选“开发工具”->“插入”->“命令按钮”,随机点选单元格放置命令按钮,然后鼠标拖动按钮边框调整大小,并拖动或键盘上下左右键微调将命令按钮安放于合适的位置。
右键命令按钮,点选属性,在属性页更改Caption值及Font属性(可根据自己喜好修改)。
经调整后,命令按钮状态如下。
Step3. 代码的添加
3.1 双击命令按钮在VBE界面右侧代码区域 Private Sub CommandButton1_Click() 子过程内外添加红色框所对应的代码
命令按钮点击时,程序使用Cells.clear先对整个工作表单元格进行清空(主要清除上次A1单元格遗留的随机色及非A1单元格的涂色)。
之后使用For循环进行10次A1单元格颜色的填充。每次循环均使用Rnd随机数进行RGB三原色赋值,使A1的Color每次都不一样。
Sleep 200代表每次循环都要等待200毫秒,否则A1单元格颜色变化过快人眼无法察觉影响视觉效果。Sleep非VBA原生函数(属Windows API函数),故需在代码窗口前端使用declare关键字进行声明。
3.2 在代码窗口列表框中点选①Worksheet及②SelectionChange,并在调出的过程中添加红色框所对应的代码。
红色框中的代码主要判断点击的是否为A1单元格,若是,则将A1单元格中的填充色数据给变量selectedColor并将涂色开关f打开;若否,则判断是否已经取色(f为true表示已经取色),如果已取色则进行涂色(即将当前选择区域填充色变为selectedColor)。
Step4. 执行的代码
返回前台sheet界面,点击命令按钮使A1单元格生成随机填充色。鼠标点选A1即可取色,再点击其他单元格即可涂色。
注:开发工具选项卡的加载方法:
开启功能区选项并在⑦的位置勾选“开发工具“,如果⑦处没有此选项可由③到⑦的步骤调出,最终点⑧完成开发工具选项的加载。
TAG:[db:关键词]