使用VBA更改图表字体

Jea*_*ett 4 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
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

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

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

R3u*_*3uK 9

确实是一个奇怪的错误......做了同样的事情,但是我去了对象浏览器(F2),目的是解决Chart而不是Shape.

经过一番尝试,我得到了这个:

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

这很简单,我尝试了更多好奇的东西(因为课堂上有一个.Count属性TextRange2)

它工作得很好并且确实改变了整个图表的字体,
只需要知道图表的名称.

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