VBA开发:给单元格或者控件设置颜色的方法与技巧

文章目录

 前言

1.用代表颜色的长整数来设置颜色

1.1 VBA颜色常量

1.1.1通用颜色常量

1.1.2与窗体和其他可视化元素相关的颜色常量

1.2 编制小程序来获取相关颜色对应的长整数

2.调用RGB函数来设置颜色


 前言

        颜色的设置在VBA开发中经常用到,我们可能需要给单元格设置背景色,给单元格文本设置颜色,还需要给可视化控件的各个部位设定颜色。

        在VBA中,有两种方法设置颜色,一种方法是给需要赋颜色的属性一个代表颜色的长整数,另一种方法是调用RGB函数,这个函数有三个参数,分别代表RGB数值。接下来我们分别探讨如何使用这两种方式。

1.用代表颜色的长整数来设置颜色

        长整数的范围从0~16777215,不同的数值就代表着不同的颜色。但是我们很难直观的感受到不同数字所代表颜色的差异。所以我们还得采用以下两种技巧:

        1)使用VBA系统的颜色常量

        2)自己编制一个小程序,用手工给某个单元格用调色盘配好颜色,然后用程序获取这个颜色对应的长整数数值,然后再使用这个数值用到我们的程序中。

1.1 VBA颜色常量

        VBA开发中,有一些常用的常数,笔者尝试将它们总结出来,供读者作为参考。

1.1.1通用颜色常量

常数名

定义

对应长整数值

vbRed

红色

0xFF

vbGreen

绿色

0xFF00

vbBlue

蓝色

0xFF0000

vbYellow

黄色

0xFFFF

vbBlack

黑色

0x0

vbCyan

青色

0xFFFF00

vbWhite

白色

0xFFFFFF

vbMagenta

洋红(紫)

0xFF00FF

1.1.2与窗体和其他可视化元素相关的颜色常量

        这部分颜色常量通常在配置可视化控件的颜色时需要用到,在任意一个可视化控件,比如ActiveX命令按钮上,右键选择属性,在弹出的属性框的BackColor 和ForeColor属性栏内,点击就可显示以下颜色常量的定义。选择这些常量的来配置可视化控件,会与操作系统匹配得比较好。这种颜色常量总共有25个,这里列出比较常用的几个供大家参考。更多的常量,读者可以再excel控件的属性栏里很轻松的看到。

常量名

定义

vbScrollBars

滚动条颜色

vbDesktop

桌面颜色

vbActiveTitleBar

活动标题栏颜色

vbInactiveTitleBar

非活动标题栏颜色

vbMenuBars

菜单条的颜色

vbWindowBackgroud

窗口背景颜色

vbWindowFrame

窗口框架颜色

1.2 编制小程序来获取相关颜色对应的长整数

        我们只需要一个ActiveX命令按钮,并在按钮的Click事件中加上一行程序,就可以实现获取颜色对应长整数的功能。

        具体使用方法,用excel菜单中的颜色调色板功能,给单元格A1设置我们想要的颜色,然后点击按钮,就可以在B1单元中显示该颜色对应的长整数。

        然后我们再将该长整数应用于我们正在开发的应用中,是不是就可以简单的实现我们的需求了?

Private Sub CommandButton1_Click()
Sheet1.Cells(1, 2) = Sheet1.Cells(1, 1).Interior.Color
End Sub

2.调用RGB函数来设置颜色

        RGB函数是VBA内置函数之一,它有三个参数,都是Variant(Integer)类型,分别表示红、绿、蓝三种原色的分量。这三个参数的有效值均为0~255,如果给定的参数值超过255,就都按255处理。

        有了这个函数,我们可以任意指定颜色,但是还是存在一个困难,在没有看到真实的效果之前,程序设计员很难确定红绿蓝三分量的值多大合适。

        针对这个问题,我们可以写三行小程序,开发一个小调色板。这次,我们不需要ActiveX按钮,我们直接在Worksheet的Change事件中加上程序,就可以实现这个调色板。

        具体使用方法,在单元格A1,B1,C1中填入任意0~255的数字,单元格D1的颜色就会根据前三个格子的数字自动变化。

Private Sub Worksheet_Change(ByVal Target As Range)

    With Sheet2
       .Cells(1, 4).Interior.Color = RGB(.Cells(1, 1), .Cells(1, 2), .Cells(1, 3))
    End With

End Sub

 

        在运用上面咱们自己开发的小调色板程序时,是不是发现一个有趣的现象?那就是当RGB三个分量相同时,实际上展现出来的颜色就是灰色,随着数字从0 ~255变化,从纯黑到纯白,中间是不同程度的灰色。

        所以如果我们希望Excel展现一张灰度图,实际上是可以很简单的通过RGB函数来实现的。这个有兴趣的读者可以在评论区留言细谈。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZevieZ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值