[TOC] > Sat May 08 2021 19:49:27 GMT+0800 (GMT+08:00) 我对颜色表示这一块也没怎么深入学习过,大概讲一点吧,在计算机的颜色通常说的是 RGB 颜色码,它们长这个样子:`rgb(0,222,45)`,不同编程语言的表示可能不一样,但规则是相同的。最小值是0,最大值是255,共 256个等级。 我们不妨直接跑跑宏,看看效果。 ## 使用 Color 属性 ```js function _m_color(){ let rng = Range("A1:M20") for(let i = 1;i<256;i++){ let item_cell = rng.Item(i) item_cell.Value2 = i-1; item_cell.Interior.Color = i-1 } } ``` > 嗯,效果嘛,看起来只有 RGB 的 Red 部分,没有 Green 和 Black 的部分,下面我们来修正它。 ### 使用 RGB > `256 x 256 x 256` 量太大,我们简单点弄吧。(0-255 共 256) ```js function _m_colorRGB(){ let rng = Range("A1:M20") for(let i = 1;i<256;i++){ let item_cell = rng.Item(i) item_cell.Value2 = i-1; let r = WorksheetFunction.RandBetween(0,255) let g = WorksheetFunction.RandBetween(0,255) let b = WorksheetFunction.RandBetween(0,255) item_cell.Interior.Color =r*g*b } } ``` ## 使用 ColorIndex 属性 经测试只有 56 种颜色。 ```js function _m_colorIndex(){ let rng = Range("A1:M20") for(let i = 1;i<57;i++){ let item_cell = rng.Item(i) item_cell.Value2 = i-1; item_cell.Interior.ColorIndex = i-1 } } ``` ## 延伸 RGB 颜色码转换; * RGB 二进制表示,例如:`00000000 00000000 00000000` * RGB 十进制表示(前面我们用的都是十进制),例如:3 * RGB 十六进制表示,例如:#FFB400 ### RGB Alpha 在 RGB 的基础上再加一个 Alpha 通道。通常用来控制透明度。它看起来像 `rgba(100, 34, 90, 0.6)`,在 WPS 中,一般只有图片、图形、艺术字等这类对象才会用到 RGBA 颜色。 ## 颜色枚举 为方便使用,人们会把 RGB 颜色具名化,其实就是类似 Red、Green、white……等这样的英文名称描述,只是在 API 中加上了 `"rgb"` 前缀 >当你不知道具体颜色的颜色值或 RGB 组合,可以使用API中断的颜色枚举值(其实就是颜色值,只是用名称来代替)