Excel交流网
  • 设为首页|收藏本站|手机版
  • Excel-教程-技巧-培训视频

  • 网站首页
  • Excel教程
  • 关于我们
  • 新闻动态
  • Excel资源
  • 招贤纳士

Excel教程

Excel操作
Excel函数
Excel图表
Excel VBA
Excel 行业应用

联系方式

Excel中国 联系方式
电  话:400-855-3990
邮  编:528400
Email:support@zstm.com
网  址:www.excel-cn.com

当前位置:网站首页 > Excel教程 > Excel VBA
Excel VBA

vb/vba颜色和RGB颜色互转

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

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

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

例如,纯绿色:

vb/vba:65280

RGB颜色:00FF00

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

Excel技巧

这里也可以看出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


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

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


使用方法就不用说了,分别是两个公共函数,传进对应的值即可。


点击次数:  更新时间:2017-02-18 16:44:46  【打印此页】  【关闭】
上一条:如何解决Excel文件变大的问题  下一条:vba正则表达式入门
本站动态|在线留言|在线反馈|友情链接|会员中心|站内搜索|网站地图|网站管理

中山市天鸣科技发展有限公司 版权所有 1999-2020 粤ICP备10043721号

广东省中山市西苑广场富贵阁 528400

QQ:4008553990 电话:0760-88315075

Excel交流网主要交流Excel教程、Excel技巧、Excel培训、Excel函数公式、Excel图表以及Excel VBA,为网友提供一个最全的Excel交流网站

Excel教程|Excel技巧|Excel培训|Excel函数公式|Excel图表|VBA

Powered by MetInfo 5.3.12 ©2008-2022  www.metinfo.cn