使用 VBA 更改图表字体

Change chart font using VBA

如何使用 VBA 更改 Excel 图表的字体?

如果我手动 select 图表,并在手动更改字体名称和大小的同时录制宏,我会得到下面的宏。但是当我立即重播宏时,它会抛出一个 run-time 错误: "The specified value is out of range." 所以看起来宏记录器有一个错误。这意味着我无法自己找出更改字体的代码。

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

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

我想更改图表的 "default" 字体,以便其所有元素都具有该字体。

这也被记录下来并且对我有用(选择图表时):

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

与您的错误代码差别不大。

确实是一个奇怪的错误...做了同样的事情,但我使用 objective 进入 Object Browser (F2) 来解决 Chart 而不是 Shape.

经过一番尝试,我成功地使用了这个:

With ActiveSheet.ChartObjects("Graph").Chart.ChartArea.Format.TextFrame2.TextRange.Font
    .Name = "Verdana"
    .Size = 14
End With

非常简单,我尝试了更多奇怪的东西(因为TextRange2 class中有一个.Count 属性 )

它工作正常,确实改变了整个图表的字体
只需要知道图表的名称

或者,确保选中图表,并使用 ActiveChart 而不是 ActiveSheet.ChartObjects("Graph").Chart

最简单的方法是:

ActiveChart.ChartArea.Font.Name = "Verdana"