网站首页 > 技术文章 正文
RGB函数几乎是对于VBA后台对Office前端颜色着色操作几乎是万能的。当然,也可以在Office的各个组件的VBA环境下运用各自特有的着色属性完成,比如在Excel环境下,用.Interior.ColorIndex、.Interior.Color属性都可以对单元格区域着色,而对于自选图形着色可以用.Fill.ForColor.Color、Fill.ForColor.SchemeColor属性可以实现自选图形着色。无论怎样,.Color或.Color.RGB属性却是通用的着色方法。其中,SchemeColor是方案颜色属性。
但是,RGB(r,g,b)函数的颜色分量坐标值是很繁杂且不容易记住的,有没有更好的办法解决呢?事实上,是可以的,虽然RGB(r,g,b)函数的颜色分量坐标值是很繁杂,但是RGB有一个由这些分量颜色值合成的RGB颜色着色总值,我们可以用这个RGB颜色着色总值去替代RGB(r,g,b)函数值,因为RGB颜色着色总值和RGB(r,g,b)函数是等值的,这样一来,就很方便了。问题又来了,这个RGB颜色着色总值如何获取和知晓呢?很简单,直接可以提取一个对象的Color属性即可获取。
为了方便起见,我特总结了它们,并且以一个数组的形式存储这些RGB颜色着色总值。于是,我们就可以很方便地通过查找这些RGB颜色着色总值在数组中的编号即可提取这些RGB颜色着色总值,是不是很方便呢?呵呵!下面,我们就来给大家细细分享吧。
一、RGB颜色编号、RGB颜色着色总值和RGB()函数的分量值对比关系
见下图所示
二、运用一个RGB颜色着色总值数组去存储RGB颜色着色总值
该数组可以定义和初始化如下:
RGB_ColorValue_Arr = Array(0, 16777215, 255, 65280, 16711680, 65535, 16711935, 16776960, 128, 32768, 8388608, 32896, 8388736, 8421376, 12632256, 8421504, 16751001, 6697881, 13434879, 16777164, 6684774, 8421631, 13395456, 16764108, 8388608, 16711935, 65535, 16776960, 8388736, 128, 8421376, 16711680, 16763904, 16777164, 13434828, 10092543, 16764057, 13408767, 16751052, 10079487, 16737843, 13421619, 52377, 52479, 39423, 26367, 10053222, 9868950, 6697728, 6723891, 13056, 13107, 13209, 6697881, 10040115, 3355443)
三、在VBA后台如何实现这些对应关系的方法
代码如下:
Sub Get_RGB_ColorValue()
Dim rg_color As Range, rg_color_num As Range, rg_dst As Range
For i = 1 To 56
Set rg_color = Cells(i + 1, 1)
Set rg_color_num = Cells(i + 1, 3)
rg_color_num = rg_color.Interior.Color
Set rg_dst = Cells(i + 1, 4)
rg_dst.Interior.Color = rg_color_num
Next
End Sub
Function RGB_Color_Weight(Color_Value As Long) As String '分解三基色RGB分量坐标值
'以下是分解R(红Red)、G(绿Green)、B(蓝Blue)三基色的色坐标分量坐标值
RedColor_Weight = Color_Value Mod 256 '0~255共265种颜色,得到RGB“红色”坐标分量值:RedColor_Weight
GreenColor_Weight = (Color_Value - RedColor_Weight) / 256 Mod 256 '得到RGB“绿色”坐标分量值:GreenColor_Weight
BlueColor_Weight = (Color_Value - RedColor_Weight - GreenColor_Weight * 256) / 256 ^ 2 '得到RGB“蓝色”坐标分量值:BlueColor_Weight
RGB_Color_Weight = "RGB(" & RedColor_Weight & "," & GreenColor_Weight & "," & BlueColor_Weight & ")"
End Function
四、测试万能的RGB颜色着色总值进行对象着色的效果
(一)用RGB方式对自选图形着色
(二)用RGB方式对自选图形内部的文字着色
编写如下代码(可在Office组件“Word、Excel、PowerPoint”中任何一种中涉及均可)
运行以上代码可见如下图的效果
(三) 用RGB方式对Excel的背景着色
Excel中编写如下代码
运行以上代码可见如下图的效果
(四)用RGB方式对PowerPoint的背景着色
PowerPoint中编写如下代码
运行以上代码可见如下图的效果
(五)用RGB方式对Word的背景着色
Word中编写如下代码
运行以上代码可见如下图的效果
五、技术小结
灵活运用RGB方式为Office对象着色的方式方法要灵活处理,比如对图形的着色可以用“.Fill.ForColor.Color.RGB=RGB颜色着色总值”,对于图形中的文字着色可以用“.TextFrame.TextRang.Font.Fill.ForColor.Color=RGB颜色着色总值”的形式完成,对于Excel中单元格区域的着色可以用“.Interior.Color=RGB颜色着色总值”方式完成。
好了,我们就分享到这里吧,希望我的分享能够给予工作上带来帮助。最后,还是感谢大家的关注(头条号:跟我学office高级办公)、推广和点评哦!
猜你喜欢
- 2025-07-02 筛选了100个配色工具后,我挑出了这25个
- 2025-07-02 好程序员:前端JavaScript全解析——Canvas绘制形状(上)
- 2025-07-02 用 Cursor 开发 10 +项目后,汇总了40 多条提示词
- 2025-07-02 Piny:代码编辑界的“视觉革命”,让前端开发从此“看得见”!
- 2025-07-02 印刷色彩特性曲线是什么?有什么用?怎么获取?
- 2025-07-02 前端最常用的25个正则表达式,代码效率提高 80%
- 2025-07-02 让 浏览器智能选择颜色?CSS 这个新功能太聪明了!
- 2024-10-08 HTML常用全部代码,你懂,你不想成功都难
- 2024-10-08 纯CSS文字聚光灯效果~#web前端 聚光灯wps
- 2024-10-08 css基础必备-元素背景,前端小白一看就会
你 发表评论:
欢迎- 590℃几个Oracle空值处理函数 oracle处理null值的函数
- 583℃Oracle分析函数之Lag和Lead()使用
- 570℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 568℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 563℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 556℃【数据统计分析】详解Oracle分组函数之CUBE
- 541℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 536℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端懒加载 (49)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle 中文 (51)
- oracle的函数 (57)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)