如何使用VBA更改Excel图表的字体?
如果我手动选择图表,并在手动更改字体名称和大小时录制宏,我会得到下面的宏。但是当我立即重放宏时,它会抛出一个运行时错误:“指定的值超出范围。”所以看起来宏记录器有一个bug。这意味着我无法弄清楚自己更改字体的代码。
Sub Macro6()
'
' Macro6 Macro
'
'
With ActiveSheet.Shapes("Chart 1").TextFrame2.TextRange.Font
.NameComplexScript = "Verdana"
.NameFarEast = "Verdana"
.Name = "Verdana"
End With
ActiveSheet.Shapes("Chart 1").TextFrame2.TextRange.Font.Size = 14
End Sub
我知道作为一种替代方案,我可以一次更改一个元素的每个元素的字体(标题,轴标题,轴,......),但这很乏味并且留下了忘记某些元素的可能性(系列点标签,趋势线方程,......)。
我正在寻找更改图表的“默认”字体,以便其所有元素都具有该字体。
答案 0 :(得分:7)
确实是一个奇怪的错误......也一样,但我去了对象浏览器(F2),目的是解决Chart
而不是{{1} }。
经过一番尝试,我得到了这个工作:
Shape
非常简单,我尝试了更多奇怪的事情(因为With ActiveSheet.ChartObjects("Graph").Chart.ChartArea.Format.TextFrame2.TextRange.Font
.Name = "Verdana"
.Size = 14
End With
类中有.Count
属性)
工作正常,确实会改变整个图表的字体,
您只需要知道图表的名称。
或者,请确保选中该图表,然后使用TextRange2
代替ActiveChart
。
答案 1 :(得分:4)
最简单的方法是:
ActiveChart.ChartArea.Font.Name = "Verdana"
答案 2 :(得分:2)
这也被记录下来并且对我有用(选择图表时):
Sub Macro1()
Selection.Format.TextFrame2.TextRange.Font.Size = 14
With Selection.Format.TextFrame2.TextRange.Font
.NameComplexScript = "Verdana"
.NameFarEast = "Verdana"
.Name = "Verdana"
End With
End Sub
对于错误的代码并没有太大的区别。