グラフのフォントを変えてみる(四苦八苦した話)
今日は、グラフのフォント変更に四苦八苦したお話。
いつもの「なんちゃって個人情報」から、なんちゃってグラフを作成。
このグラフ全体のフォントを変更したくなった。手っ取り早く、マクロの記録でヒントを探した。
Sub Macro1() ActiveSheet.ChartObjects("グラフ 1").Activate With ActiveSheet.Shapes("グラフ 1").TextFrame2.TextRange.Font .NameComplexScript = "メイリオ" .NameFarEast = "メイリオ" .Name = "メイリオ" End With End Sub
ところが、これをそのまま実行すると、エラーになった。
境界を越えている?何を叱られているかも分からない。ここから、長い長い手探りが始まった。数多くの寄り道を割愛し、あたかも迷うことなく辿り着いたかのように書くと、こんな感じだ。
まず、ここに着目した。
ActiveSheet.ChartObjects("グラフ 1").Activate
これはListObjectsやPivotTablesのように、ChartObjectsの中の「グラフ1」を指定しているに違いない。いつも「グラフ1」という名前の保証は無いが、シート上にはグラフが1個しかないので、この型を調べてみた。
ChartObjectか。当たり前といえば、当たり前。ChartObjectがたくさん集まったものが、ChartObjectsなのだから。
しかしこれで、グラフを格納する変数の型が確定した。
Dim ChartObj As ChartObject Set ChartObj = ActiveSheet.ChartObjects(1)
そこで試しに、この部分をChartObjに置き換えてみる。
ActiveSheet.Shapes("グラフ 1")
やっぱり怒られた。
結局、紆余曲折を経てたどり着いたのが、こちら。
Sub Macro1() Dim ChartObj As ChartObject Set ChartObj = ActiveSheet.ChartObjects(1) With ChartObj.Chart.ChartArea.Format.TextFrame2.TextRange.Font .NameComplexScript = "メイリオ" .NameFarEast = "メイリオ" .Name = "メイリオ" End With End Sub
これだけ苦労しても、一月もしたら忘れていそう。
だから今回は、備忘録としてここに置いておく。
(一ヵ月後、ここに書いたことすら忘れていそう)。
参考まで。