【解析屋さんのためのExcelVBA(5)】シート内のグラフのサイズを統一し、タイトル・軸ラベル、凡例のテンプレートを入れるVBA
Category:ComputerScience
はやし@color_chipsです。
突然ですが!
Excel2010以降では、でグラフ作るとそのままではタイトルや凡例などが表示されないままです。
グラフのメニューから、表示させるようにはできますが、グラフが多くなると非常に面倒くさい。
(グラフの複数選択時にはグラフメニューが使えないので、一括設定ができない。)
報告書等に、データ解析をした結果のグラフを掲載する時、
グラフが1,2点であればよいですが、増えてくると、
グラフサイズが合っていなかったり、タイトル表記や軸ラベル、凡例などを統一したいという事があります。
そんな時はこれ!
そんな時はこれ!
「シート内のグラフのサイズを統一し、タイトル・軸ラベル、凡例のテンプレートを入れるVBA」
(長い)
というわけで、ソースコードです
' [[[[[[[[[[[[[[[[[[[[[[[[[[[[[[]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
' [[ ]]
' [[ アクティブシートの全てのグラフについて、 ]]
' [[ サイズを設定し、タイトル、軸ラベル、凡例を入れる ]]
' [[ ]]
' [[[[[[[[[[[[[[[[[[[[[[[[[[[[[[]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
Sub setAllChartSizeAndTitle()
Dim Width As Integer
Dim Height As Integer
Dim Title As String
Dim TitleSize As Integer
Dim AxisTitleX As String
Dim AxisSizeX As Integer
Dim AxisTitleY As String
Dim AxisSizeY As Integer
Width = 320 'グラフサイズ幅
Height = 240 'グラフサイズ高さ
Title = "ChartTitle" 'グラフタイトル
TitleSize = 14 'グラフタイトル文字サイズ
AxisTitleX = "X-Axis" '項目軸軸ラベル
AxisSizeX = 14 '項目軸軸ラベル文字サイズ
AxisTitleY = "Y-Axis" '数値軸軸ラベル
AxisSizeY = 14 '数値軸軸ラベル文字サイズ
Dim tmpObject
For Each tmpObject In ActiveSheet.ChartObjects
tmpObject.Width = Width
tmpObject.Height = Height
With tmpObject.Chart
If .HasTitle = False Then
.HasTitle = True ' タイトル表示有無
With .ChartTitle ' チャートのタイトル設定
.Caption = Title ' グラフタイトル
.Font.Size = TitleSize ' タイトル文字サイズ
.Font.Color = vbBlack ' タイトル文字色
.Interior.ColorIndex = xlNone ' タイトル領域塗りつぶし
End With
End If
With .Axes(xlCategory, xlPrimary) ' 項目軸
If .HasTitle = False Then
.HasTitle = True ' 軸ラベル表示有無
With .AxisTitle
.Caption = AxisTitleX ' 軸ラベル
.Font.Size = AxisSizeX ' ラベル文字サイズ
.Font.Color = vbBlack ' ラベル文字色
.Interior.ColorIndex = xlNone ' ラベル領域塗りつぶし
End With
End If
End With
With .Axes(xlValue, xlPrimary) ' 数値軸
If .HasTitle = False Then
.HasTitle = True ' 軸ラベル表示有無
With .AxisTitle
.Caption = AxisTitleY ' 軸ラベル
.Font.Size = AxisSizeY ' ラベル文字サイズ
.Font.Color = vbBlack ' ラベル文字色
.Interior.ColorIndex = xlNone ' ラベル領域塗りつぶし
End With
End If
End With
.HasLegend = True '凡例
End With
Next
End Sub
実行してみる
これが
こう!
使い方・説明
アクティブなシートにグラフがある状態で、
setAllChartSizeAndTitle()内で設定している、下記の数値やテキスト
Width = 320 'グラフサイズ幅
Height = 240 'グラフサイズ高さ
Title = "ChartTitle" 'グラフタイトル
TitleSize = 14 'グラフタイトル文字サイズ
AxisTitleX = "X-Axis" '項目軸軸ラベル
AxisSizeX = 14 '項目軸軸ラベル文字サイズ
AxisTitleY = "Y-Axis" '数値軸軸ラベル
AxisSizeY = 14 '数値軸軸ラベル文字サイズ
をそれぞれ好みに変更して、実行してみてください。
ご意見、ご質問ありましたら、@color_chipsまで。
動かない!という文句でも構いません。
皆さんのデータ解析ライフのお役に立てますよう。