首页 > 解决方案 > 通过 VBA 控制形状渐变属性

问题描述

我正在尝试找到一种方法来控制 Excel 2016 中“形状”的渐变填充属性。我有 8 个形状(称为 Shape1-8),它们将充当主形状渐变的色样。每个样本的定位(渐变停止)将(最终)通过微调器/滚动条进行控制。在网上找不到太多东西,所以我在尝试对功能进行逆向工程时转向了旧的“记录宏”。这就是问题的开始......

所以我构建了一个简单的 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 中相关的渐变色标 (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)

标签: excelvba

解决方案


推荐阅读