更改图表形状文本框的颜色(Excel VBA)
无法确定如何输入更改图表形状文本框的颜色(Excel VBA),excel,vba,Excel,Vba,无法确定如何输入.Font.ColorIndex并使用它更改图表文本框形状的字体颜色 .Font.ColorIndex返回48 当我更改宏中文本的颜色时,它将返回以下内容: With Selection.ShapeRange.TextFrame2.TextRange.Font.Fill .Visible = msoTrue .ForeColor.ObjectThemeColor = msoThemeColorBackground1
.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
这可能吗?您正在混合不同的颜色类型。对象颜色表示的颜色类型与48中的颜色类型不同 查看以下可用选项: 您可能希望将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
赞成。。。msoThemeColorBackground1是14。对,但是输入一个
msoThemeColorBackground1
是的数字会给我一个错误。我以前的代码在ForeColor
行中有一个错误。我纠正了它。