excel - 更改图表形状文本框的颜色(Excel VBA)
问题描述
无法弄清楚如何输入 a.Font.ColorIndex
并使用它来更改图表文本框形状的字体颜色。
.Font.ColorIndex
返回 48
当我更改宏中文本的颜色时,它会返回:
With Selection.ShapeRange.TextFrame2.TextRange.Font.Fill
.Visible = msoTrue
.ForeColor.ObjectThemeColor = msoThemeColorBackground1 ' How to set this value from a font color? Can you?
.ForeColor.TintAndShade = 0
.ForeColor.Brightness = -0.5
.Transparency = 0
.Solid
End With
这可能吗?
解决方案
您正在混合不同的颜色类型。ObjectThemeColor 代表与 48 不同的颜色类型。
查看Microsoft 网站可用的选项有:
您可能希望将 ColorIndex 转换为 RGB,然后插入。您将需要一个自定义函数,但并不难。只需将此函数粘贴到您的代码模块中的某个位置。
Function getRGB(C As Long, LetterTYPE As String) As Integer
Dim R As Long
Dim G As Long
Dim B As Long
R = C Mod 256
G = C \ 256 Mod 256
B = C \ 65536 Mod 256
If UCase(LetterTYPE) = "R" Then
getRGB = R
ElseIf UCase(LetterTYPE) = "G" Then
getRGB = G
ElseIf UCase(LetterTYPE) = "B" Then
getRGB = B
End If
End Function
然后重写您的原始代码以包含新创建的公式:
YourColor = 48
With Selection.ShapeRange.TextFrame2.TextRange.Font.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(getRGB(YourColor , "R"), getRGB(YourColor , "G"), getRGB(YourColor , "B"))
.ForeColor.TintAndShade = 0
.ForeColor.Brightness = -0.5
.Transparency = 0
.Solid
End With
推荐阅读
- mysql - 如何在带有斜杠的 MYSQL 中使用全文搜索
- ruby - 监视 ruby 文件,在修改时运行它,并在修改时停止它
- ios - 在 Xcode 12.2 中将验证码从 SMS 检索到文本字段中
- python - 哪种损失函数合适?
- regex-group - 如何对任何行的第二个单词进行分组并分别替换它们
- reactjs - NextJS 和 Redux 在更改页面时清除存储
- simd - 电源上的 SIMD 扩展:编译器标志和处理器支持
- autohotkey - 拦截多个键盘符号
- oracle - Oracle Program Global Area 中的 Global 一词有什么意义?
- openssl - 在 Delphi 中使用 Indy10 库的 SSL_Connect() 问题