vb/vba颜色和RGB颜色互转-will.miao
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access数据库-模块/函数/VBA


vb/vba颜色和RGB颜色互转

发表时间:2019/5/10 8:50:38 评论(0) 浏览(12559)  评论 | 加入收藏 | 复制
   
摘 要:vb/vba颜色和RGB颜色互转
正 文:

微软的东西就是要独特另行,很多东西都和其他人不一样。我不排斥个性,但这样会造成很多不必要的麻烦。

这个颜色也是如此。vb/vba中的颜色是一个10进制的数字,Long类型。

通常使用的Web颜色是十六进制表示,即RGB颜色。


例如,纯绿色:

vb/vba:65280

RGB颜色:00FF00

这个绿色在vb/vba中有被定义为常量(在vb/vba代码界面按F2,搜索vbGreen)




这里也可以看出vb/vba的颜色也可以用十六进制表示。无语的是,这个十六进制和RGB颜色的是十六进制不一样。

RGB颜色的以白色为例:FFFFFF。其中头两位FF是代表红色的值,中间两位是代表绿色,后两位是代表蓝色。也就是这六个数字分别是:红红绿绿蓝蓝

vb/vba颜色十六进制表示方式实际上是它的10进制转化而成的。结果和RGB的顺序不一样,vb/vba的顺序是蓝蓝绿绿红红。红色和蓝色的位置和RGB颜色是相反的。

知道这个规律之后,就可以实现颜色转换了。



vb/vba颜色转RGB颜色代码:

Public Function Vba2RGB(lngVbaColor As Long)
    Dim strHexColor As String
    strHexColor = Hex(lngVbaColor)  '转为十六进制'
    
    '补齐其他颜色值(凑够6位)'
    strHexColor = String(6 - Len(strHexColor), "0") & strHexColor
    
    Dim strR As String
    Dim strG As String
    Dim strB As String
    
    strR = Right(strHexColor, 2)    '得到R颜色值'
    strG = Mid(strHexColor, 3, 2)   '得到G颜色值'
    strB = Left(strHexColor, 2)     '得到B颜色值'
    
    '调整位置,拼成RGB颜色'
    Vba2RGB = strR & strG & strB
End Function


Public Function RGB2Vba(strRGBColor As String)
    Dim strR As String
    Dim strG As String
    Dim strB As String
    
    strR = Left(strRGBColor, 2)     '得到R颜色值'
    strG = Mid(strRGBColor, 3, 2)   '得到G颜色值'
    strB = Right(strRGBColor, 2)    '得到B颜色值'
    
    '拼成VBA的颜色值'
    RGB2Vba = RGB(Val("&H" & strR), Val("&H" & strG), Val("&H" & strB))
End Function


附   件:

点击下载此附件


图   示:


Access软件网交流QQ群(群号:198465573)
 
 相关文章
连续窗体各行显示不同颜色  【t小雨  2013/10/7】
【Access示例】字段值重复颜色突出显示/反色显示重复值  【缪炜  2015/1/18】
【Access入门示例】清空文本框颜色,指定文本框颜色,设置控件颜...  【麥田  2016/3/5】
树菜单添加不同图标及字体添加加颜色  【大海  2017/12/12】
【Access基础】RGB函数  【伊西军  2019/1/15】
常见问答
技术分类
相关资源
文章搜索
关于作者

will.miao

文章分类

文章存档

友情链接