【发布时间】:2018-09-03 01:04:38
【问题描述】:
我正在尝试更改 PowerPoint 中直方图图表标题的文本颜色。
这是我的工作:
var colorFormat = chart.ChartTitle.Format.TextFrame2.TextRange.Font.Fill.ForeColor;
colorFormat.RGB = ...;
// or
colorFormat.ObjectThemeColor = ...;
这适用于标准图表,如折线图。但它不适用于直方图、瀑布图、树状图等其他图表类型。
在这些情况下,设置 ObjectThemeColor 会将文本设置为黑色。设置RGB 确实设置了正确的颜色。但是,在这两种情况下,只要用户更改了选择,文本颜色就会跳回之前的颜色。
如何设置这些图表之一的标题的文本颜色?
我正在使用 VSTO 和 C#,但 VBA 解决方案同样受欢迎,只要它可以翻译成 C# 并且仍然有效。
【问题讨论】:
-
当我指定确切的图表对象(例如,
Slides[1].Shapes[2].Chart)时,我可以将颜色应用于图表标题而不会丢失更改。您是否使用Selection对象而不是其他方式(例如Shape.Name属性)来识别图表?这可以解释当用户更改选择时颜色变化的损失。 -
@joeschwa:即使我不是从选择中识别出图表,结果也是一样的。我不知道为什么它对您有用 - 也许您使用的图表类型仍然有效?
-
我在 PowerPoint 2016 中使用直方图图表类型。您在分配 RGB 值时是否使用系统定义的颜色? (类似于
colorFormat.RGB = Color.DarkOliveGreen.ToArgb())VSTO 可能需要这个。 -
绝对没有区别。
ActivePresentation.Slides(19).Shapes(2).Chart.ChartTitle.Characters.Font.Color = vbGreen具有完全相同的结果:1。如果选择了图表标题,它只有效。它只会选择其他内容。 span> -
@DavidZemens:只有在选择标题时才有效,这不是问题,因为无论如何我都在处理选择。但是,问题是一旦选择移动到另一个对象,更改就会被撤消。
标签: vba vsto office-interop powerpoint