PowerPoint VBA - 主题颜色公式
PowerPoint VBA - Theme Color Formula
我想模仿 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 种强调色自动选择稍亮或稍暗的 rgbs。我想要这个公式,所以我可以根据自己的喜好调整它。这个论坛在任何地方都可用吗?
颜色变换算法从未发表过,但它们很容易推导出来:
- 创建包含所需数据系列的示例图表。
- 保存文件,将结尾改为.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)
我想模仿 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 种强调色自动选择稍亮或稍暗的 rgbs。我想要这个公式,所以我可以根据自己的喜好调整它。这个论坛在任何地方都可用吗?
颜色变换算法从未发表过,但它们很容易推导出来:
- 创建包含所需数据系列的示例图表。
- 保存文件,将结尾改为.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)