使用VBA更改图表字体

时间:2015-04-30 12:52:43

标签: excel vba excel-vba excel-2010 excel-charts

如何使用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

enter image description here

我知道作为一种替代方案,我可以一次更改一个元素的每个元素的字体(标题,轴标题,轴,......),但这很乏味并且留下了忘记某些元素的可能性(系列点标签,趋势线方程,......)。

我正在寻找更改图表的“默认”字体,以便其所有元素都具有该字体。

3 个答案:

答案 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

对于错误的代码并没有太大的区别。