我知道这听起来很简单,但是我在网站和网站上都找不到任何解决方案。
因此,我在Excel中有一个宏,它可以更改任何选定项目的字体颜色-范围,图表,文本框等-并且代码非常简单:
Selection.Font.Color = RGB(0,0,0)
但是在PowerPoint中,没有Excel中的“选择”通配符。在PowerPoint中,此功能非常适合文本框-
ActiveWindow.Selection.TextRange.Font.Color = RGB(0,0,0)
但是它不适用于图表和表格。因此,对于图表,我使用此代码-
ActiveWindow.Selection.ShapeRange(1).Chart.ChartArea.Format.TextFrame2.TextRange.Font.Fill.ForeColor.RGB RGB(0,0,0)
问题在于它会更改图表中的所有文本-标题,标签,轴等。我只需要更改所选项目的字体颜色。例如,仅标题或标签,取决于用户决定选择什么。
我不知道如何区分图表中选择的项目,以便仅将更改应用于该项目。例如-
.ChartTitle.Format.Fill.ForeColor.RGB, etc.
有没有一种方法可以识别选择了哪个项目?还是仅将更改应用到它?谢谢。
答案 0 :(得分:2)
您非常亲密。除了.ChartArea
之外,您还可以访问其他图表项目,例如.ChartTitle
。
此示例循环浏览幻灯片上的所有形状,包括一些额外的检查以防止错误。如果形状具有图表,则图表具有标题,标题具有文本,请指定图表标题字体的颜色。
Sub FontColor_ChartTitle()
With ActivePresentation.Slides(1)
'Loop through all shapes on the slide
For i = 1 To .Shapes.Count
With .Shapes(i)
'If the shape is a chart
If .HasChart Then
'If the chart has a title
If .Chart.HasTitle Then
With .Chart.ChartTitle.Format.TextFrame2
'If the title contains text
If .HasText Then
With .TextRange.Font
.Fill.ForeColor.RGB = RGB(95, 37, 97)
End With
End If
End With
End If
End If
End With
Next
End With
End Sub
答案 1 :(得分:1)
由于基本问题是在为客户端提供更多颜色的同时避免让它们输入RGB值,因此我认为您可能需要评估最简单,最灵活的方法。 对于主题颜色以外的颜色选项,将自定义颜色添加到文件是一种更好的方法。我将删除所有基于VBA选择的格式。本文着重介绍PowerPoint,但是自定义颜色也可以在Word和Excel中使用:Custom Colors added to color picker
答案 2 :(得分:1)
不幸的是,您的问题的简单答案是不。 PPT对象模型无法返回图表中的所选项目。
John Korchok的建议应允许您向用户提供所需的颜色以供选择。