使用VBA更改图表字体

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

如果我手动select图表,并logging一个macros,而我手动更改字体名称和大小,我得到下面的macros。 但是,当我立即重播macros,它会引发运行时错误:“指定的值超出范围”。 所以它看起来像macroslogging器有一个错误。 这意味着我无法弄清楚自己改变字体的代码。

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 

在这里输入图像说明

我知道,作为替代scheme,我可以逐个更改每个单独元素的字体(标题,轴标题,轴,…),但是这很乏味,并且留下遗忘一些元素(系列点标签,趋势线方程,…)。

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

确实是一个奇怪的错误…也是一样的,但我去了目标浏览器 (F2),目的是解决ChartShape

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

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

这很简单 ,我尝试了更多好奇的事情(因为TextRange2类中有一个.Count属性)

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

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

这也被logging下来,并为我工作(当图表被选中时):

 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 

对你错误的代码不是很大的区别。

最简单的方法是:

 ActiveChart.ChartArea.Font.Name = "Verdana"