我正在尝试更改PowerPoint中直方图的图表标题的文本颜色 这是我的工作:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><script src="https://willowsystems.github.io/jSignature/js/libs/jSignature.min.js"></script>
<div id="DrawSign-signature" style="border:1px solid black;width:400px;height:160px;">
</div>
这适用于标准图表,如折线图。但它不适用于直方图,瀑布,树图等其他图表类型。
在这些情况下,设置var colorFormat = chart.ChartTitle.Format.TextFrame2.TextRange.Font.Fill.ForeColor;
colorFormat.RGB = ...;
// or
colorFormat.ObjectThemeColor = ...;
会将文本设置为黑色。设置ObjectThemeColor
实际上设置了正确的颜色。但是,在这两种情况下,只要用户更改选择,文本颜色就会跳回到之前的颜色。
如何设置其中一个图表标题的文字颜色?
我正在使用VSTO和C#,但VBA解决方案同样受欢迎,只要它可以转换为C#并且仍然有效。
答案 0 :(得分:0)
根据您提供的信息,我在PowerPoint中构建了直方图和瀑布图,并成功使用:
Sub ChartTitleFontColor()
Dim oShp As Shape
Dim oCht As Chart
'Waterfall on slide 1
Set oShp = ActivePresentation.Slides(1).Shapes(1)
If oShp.HasChart Then
Set oCht = oShp.Chart
End If
' Do stuff with your chart
If oCht.HasTitle Then
Debug.Print oCht.ChartTitle.Text
oCht.ChartTitle.Format.TextFrame2.TextRange.Font.Fill.ForeColor.RGB = RGB(251, 5, 40)
End If
'Histogram on slide 2
Set oShp = ActivePresentation.Slides(2).Shapes(1)
If oShp.HasChart Then
Set oCht = oShp.Chart
End If
' Do stuff with your chart
If oCht.HasTitle Then Debug.Print oCht.ChartTitle.Text
oCht.ChartTitle.Format.TextFrame2.TextRange.Font.Fill.ForeColor.RGB = RGB(251, 5, 40)
End If
' Clean up
Set oShp = Nothing
Set oCht = Nothing
End Sub
答案 1 :(得分:0)
您的代码在我的测试中有效。我在PowerPoint 2016中创建了两个图表,第一个是瀑布图,第二个是另一个图表。以下代码仅更改标题颜色(文本只是更改它的证明),而不是其他任何内容。我可以选择其他图表而没有任何变化。我在搜索中找不到关于此的错误。或许其余代码中的某些东西正在改变它?
Sub test()
Dim myPresentation As Presentation
Set myPresentation = ActivePresentation
Dim myShape As Shape
Set myShape = myPresentation.Slides(1).Shapes(1)
Dim theChart As Chart
If myShape.HasChart Then
Set theChart = myShape.Chart
If theChart.ChartTitle.Text = "This is blue" Then
theChart.ChartTitle.Text = "This is yellow"
theChart.ChartTitle.Format.TextFrame2.TextRange.Font.Fill.ForeColor.RGB = RGB(255, 255, 0)
Else
theChart.ChartTitle.Text = "This is blue"
theChart.ChartTitle.Format.TextFrame2.TextRange.Font.Fill.ForeColor.RGB = RGB(0, 255, 255)
End If
End If
End Sub
答案 2 :(得分:0)