vba - PowerPoint VBA - 主题颜色公式
问题描述
我想模仿 PowerPoint 如何在使用 6 种强调色后自动选择颜色。
在 vba 中,您可以像这样设置 6 种主题颜色:
.ThemeColorScheme(msoThemeAccent1) = RGB(255, 0, 0)
.ThemeColorScheme(msoThemeAccent2) = RGB(0, 255, 0)
.ThemeColorScheme(msoThemeAccent3) = RGB(0, 255, 255)
.ThemeColorScheme(msoThemeAccent4) = RGB(255, 255, 0)
.ThemeColorScheme(msoThemeAccent5) = RGB(23, 255, 10)
.ThemeColorScheme(msoThemeAccent6) = RGB(23, 255, 100)
主题颜色在这里手动设置:
假设我与 15 系列聊天,powerpoint 将使用前 6 种帐户颜色,但随后它会根据前 6 种强调色自动选择稍亮或稍暗的 rgb。我想要这个公式,所以我可以根据自己的喜好调整它。这个论坛在任何地方都可用吗?
解决方案
颜色转换算法从未发表过,但它们很容易推断:
- 根据需要创建包含尽可能多的数据系列的示例图表。
- 保存文件,将结尾更改为 .zip 并解压缩。
- 看ppt/charts/chart1.xml
Office 程序不直接转换 RGB 值。相反,他们应用过滤器。这是前 6 个系列的典型颜色填充:
<a:solidFill>
<a:schemeClr val="accent1"/>
</a:solidFill>
第二组6人:
<a:solidFill>
<a:schemeClr val="accent1">
<a:lumMod val="60000"/>
</a:schemeClr>
</a:solidFill>
第三组:
<a:solidFill>
<a:schemeClr val="accent1">
<a:lumMod val="80000"/>
<a:lumOff val="20000"/>
</a:schemeClr>
</a:solidFill>
第四组:
<a:schemeClr val="accent1">
<a:lumMod val="80000"/>
</a:schemeClr>
</a:solidFill>
第五组:
<a:solidFill>
<a:schemeClr val="accent1">
<a:lumMod val="60000"/>
<a:lumOff val="40000"/>
</a:schemeClr>
</a:solidFill>
第六组:
<a:solidFill>
<a:schemeClr val="accent1">
<a:lumMod val="50000"/>
</a:schemeClr>
</a:solidFill>
不幸的是,VBA 中没有办法直接应用 lumMod 或 lumOff。相反,您需要应用.PictureEffects参数,然后找出哪个 PictureEffect 代码创建了必要的视觉效果。msoEffectBrightnessContrast和msoEffectSaturation将能够通过一些实验设置相同的颜色值。这里是微软对图片效果的枚举:MsoPictureEffectType enumeration (Office)
推荐阅读
- css - 自定义组件在动画时影响周围元素的位置
- javascript - 将方法附加到函数原型
- php - SQL/PHP 我可以从一列中获取唯一值并从其他列中获取所有其他值吗?描述中的图像
- testing - 可以在一个 CNAME 下的两个目标之间进行 A/B 测试吗?
- kubernetes - 使用 ConfigMap 中的正则表达式更新 JSON 文件占位符
- powerbi - Powerbi Embedded - 使用切片器/过滤器导出为 pdf
- javascript - 使用 React.useMemo 将数组传递给 react-table,由于渲染,其中一个 useMemo 返回一个空数组
- javascript - 根据 URL 参数选中复选框
- php - 为什么 php artisan migrate 会导致“ Illuminate\Database\QueryException SQLSTATE[HY000] [2002] Connection denied”
- vue.js - bootstrap-vue 按钮背景有渐变,但不应该;t