通过VBA控制形状渐变属性

时间:2019-07-22 06:54:59

标签: excel vba

我试图在Excel 2016中找到一种控制“形状”的渐变填充属性的方法。我有8个形状(称为Shape1-8),将用作MASTER形状的渐变的色板。每个样本的位置(渐变停止)将(最终)通过微调器/滚动条控制。 找不到太多在线资源,所以在尝试对功能进行反向工程时,我转向了旧的“记录宏”。这是开始出现的问题...

所以我构造了一个简单的2色渐变,从黑到白。

然后添加了第三种颜色,红色。

将红色停止点从默认的50%更改为83%

然后添加了第四种颜色黄色

With Selection.ShapeRange.Fill
        .Visible = msoTrue
        .ForeColor.RGB = RGB(0, 0, 0)
        .BackColor.RGB = RGB(250, 250, 250)
        .TwoColorGradient msoGradientHorizontal, 1
End With

Selection.ShapeRange.Fill.Visible = msoTrue  'Added Red
Selection.ShapeRange.Fill.Visible = msoTrue  'Moved Red from 50% to 83%
Selection.ShapeRange.Fill.Visible = msoTrue  'Added Yellow

我希望找到一种从Swatch Shape(1-8)中提取现有颜色以更新MASTER中关联的Gradient Stop(1-8)的方法,就像这样。...

...Shape("Master").Gradient1.backcolor.fill = ...Shape("Swatch1").Backcolor.fill

无需编码从色板控件传递的RGB

...Shape("Swatch1").BackColor.RGB = RGB(TextRed.value, TextGreen.value, TextBlue.value)

进入

...Shape("Master").Gradient1.BackColor.RGB = RGB(TextRed.value, TextGreen.value, TextBlue.value)

0 个答案:

没有答案