尝试更改形状的颜色和 3D 格式

问题描述 投票:0回答:1

我一直在尝试使用不同的颜色格式,但我在使用

msoShapeStylePreset
时遇到了麻烦,它允许我使用 RGB 应用颜色。

当我尝试使用 RGB 应用颜色时,它用两种颜色填充形状,这不是我想要的。我可能在写的方式上做错了什么。

我需要你的帮助来解决这个问题。目标是当选择任何形状时,其颜色应该不同,而其余形状应保持相同。我还想要选择两者的颜色组合的选项。

Sub Select1()
    
    Sheet1.Shapes("Group 1").ShapeStyle = msoShapeStylePreset41
    Sheet1.Shapes("Shape1").ShapeStyle = msoShapeStylePreset27
    
    With Sheet1.Shapes("Shape1").ThreeD
        .BevelTopType = msoBevelCircle
        .BevelTopInset = 6
        .BevelTopDepth = 6
    End With
End Sub

Sub Select2()
    Sheet1.Shapes("Group 1").ShapeStyle = msoShapeStylePreset41
    Sheet1.Shapes("Shape2").ShapeStyle = msoShapeStylePreset27
    With Sheet1.Shapes("Shape2").ThreeD
        .BevelTopType = msoBevelCircle
        .BevelTopInset = 6
        .BevelTopDepth = 6
    End With
End Sub

我想像这样改变颜色

excel vba formatting shapes
1个回答
0
投票

请尝试一下。

Sub ShpClick()
    Dim rdD As ThreeDFormat
    Dim HLColor As Long
    Dim sCaller As String
    HLColor = RGB(0, 255, 0)
    sCaller = Application.Caller
    Sheet1.Shapes("Group 1").ShapeStyle = msoShapeStylePreset9
    With Sheet1.Shapes(sCaller).Fill
        .Visible = msoTrue
        .ForeColor.RGB = HLColor
        .Transparency = 0
        .Solid
    End With
    With Sheet1.Shapes(sCaller).ThreeD
        .BevelTopType = msoBevelCircle
        .BevelTopInset = 6
        .BevelTopDepth = 6
    End With
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.