使用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),目的是解决Chart
和Shape
。
经过一番尝试,我得到了这个工作:
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"