【ExcelVBA】グラフを作成する方法 グラフ作成、タイトル、軸の値、軸タイトル

こんなあなたにおすすめ

・Excel VBAでグラフを作成したい

Excelを使っていると、グラフを作成したいということがかなりの頻度であると思います。

今回は、Excel VBAで
 ・グラフを作成する
 ・グラフタイトルを設定する
 ・軸の最大値、最小値を設定する
 ・軸のタイトルを設定する

以上の内容について解説します。

グラフを作成する方法

グラフを作成する

グラフを作成の基本的な書き方は、以下の通りです

With ActiveSheet.Shapes.AddChart.Chart

    .ChartType = グラフの種類
    .SetSourceData Rangeのセル範囲

End With

グラフの種類は、以下の通りです。

グラフの種類
xlColumnClustered 集合縦棒
xlLine  折れ線
xlPie
xlDoughnut ドーナツ
xlArea
xlXYScatter 散布図
xlRadar レーダー

実際に棒グラフ、折れ線グラフ、散布図の3つを作成してみましょう。

棒グラフ

Sub test1()

  With ActiveSheet.Shapes.AddChart.Chart

    .ChartType = xlColumnClustered  '棒グラフを作成する
    .SetSourceData Range("A1:B6")   'データの範囲を指定する

  End With

End Sub

↓グラフ用データ

↓プログラム実行結果

折れ線グラフ

Sub test2()

  With ActiveSheet.Shapes.AddChart.Chart
  
    .ChartType = xlLine '折れ線グラフを作成する
    .SetSourceData Range("B1:B6")   'データの範囲を設定する
    
  End With

End Sub

↓グラフ用データ

↓プログラム実行結果

散布図

Sub test3()

  With ActiveSheet.Shapes.AddChart.Chart
  
    .ChartType = xlXYScatter    '散布図を作成する
    .SetSourceData Range("A1:B6")   'データの範囲を設定する
    
  End With

End Sub

↓プログラム実行結果

グラフタイトルを設定する

グラフをタイトルの基本的な書き方は、以下の通りです

With ActiveSheet.Shapes.AddChart.Chart

    .HasTitle = True    'グラフタイトルを追加する
    .ChartTitle.Text = ""   'グラフタイトルを変更する

End With

全体のプログラムは、以下の通りです。

Sub test4()

  With ActiveSheet.Shapes.AddChart.Chart

    '-----------------------------------------------------------------
    'グラフを作成する
    '-----------------------------------------------------------------
    .ChartType = xlXYScatter    '散布図を作成する
    .SetSourceData Range("A1:B6")   'データの範囲を設定する
    
    '-----------------------------------------------------------------
    'グラフタイトルを設定する
    '-----------------------------------------------------------------
    .HasTitle = True    'グラフタイトルを追加する
    .ChartTitle.Text = "資格試験 スコア推移"   'グラフタイトルを変更する
    
  End With

End Sub

軸の最大値、最小値を設定する

軸の最大値、最小値の基本的な書き方は、以下の通りです

With ActiveSheet.Shapes.AddChart.Chart

    .Axes(xlCategory).MaximumScale = 値  'x軸の最大値を設定する
    .Axes(xlCategory).MinimumScale = 値  'x軸の最小値を設定する

    .Axes(xlValue).MaximumScale = 値   'y軸の最大値を設定する
    .Axes(xlValue).MinimumScale = 値   'y軸の最大値を設定する

End With

全体のプログラムは、以下の通りです。

Sub test5()

  With ActiveSheet.Shapes.AddChart.Chart

    '-----------------------------------------------------------------
    'グラフを作成する
    '-----------------------------------------------------------------
    .ChartType = xlXYScatter    '散布図を作成する
    .SetSourceData Range("A1:B6")   'データの範囲を設定する
    
    '-----------------------------------------------------------------
    'グラフタイトルを設定する
    '-----------------------------------------------------------------
    .HasTitle = True    'グラフタイトルを追加する
    .ChartTitle.Text = "資格試験 スコア推移"   'グラフタイトルを変更する
    
    
    '-----------------------------------------------------------------
    'x、y軸の最小値と最大値を設定する
    '-----------------------------------------------------------------
    .Axes(xlCategory).MaximumScale = 5  'x軸の最大値を設定する
    .Axes(xlCategory).MinimumScale = 0  'x軸の最小値を設定する
    
    .Axes(xlValue).MaximumScale = 100   'y軸の最大値を設定する
    .Axes(xlValue).MinimumScale = 0     'y軸の最大値を設定する
    
  End With

End Sub

軸のタイトルを設定する

軸タイトルの基本的な書き方は、以下の通りです

With ActiveSheet.Shapes.AddChart.Chart

    .Axes(xlCategory).HasTitle = True    'x軸のタイトルを追加する
    .Axes(xlCategory).AxisTitle.Caption = "受験回数"    'x軸のタイトルを変更する

    .Axes(xlValue).HasTitle = True    'y軸のタイトルを追加する
    .Axes(xlValue).AxisTitle.Caption = "スコア"    'y軸のタイトルを変更する
End With

全体のプログラムは、以下の通りです。

Sub test6()

  With ActiveSheet.Shapes.AddChart.Chart

    '-----------------------------------------------------------------
    'グラフを作成する
    '-----------------------------------------------------------------
    .ChartType = xlXYScatter    '散布図を作成する
    .SetSourceData Range("A1:B6")   'データの範囲を設定する
    
    '-----------------------------------------------------------------
    'グラフタイトルを設定する
    '-----------------------------------------------------------------
    .HasTitle = True    'グラフタイトルを追加する
    .ChartTitle.Text = "資格試験 スコア推移"   'グラフタイトルを変更する
    
    
    '-----------------------------------------------------------------
    'x、y軸の最小値と最大値を設定する
    '-----------------------------------------------------------------
    .Axes(xlCategory).MaximumScale = 5  'x軸の最大値を設定する
    .Axes(xlCategory).MinimumScale = 0  'x軸の最小値を設定する
    
    .Axes(xlValue).MaximumScale = 100   'y軸の最大値を設定する
    .Axes(xlValue).MinimumScale = 0     'y軸の最大値を設定する
    
    '-----------------------------------------------------------------
    'x、y軸の凡例(軸タイトル)を設定する
    '-----------------------------------------------------------------
    .Axes(xlCategory).HasTitle = True    'x軸のタイトルを追加する
    .Axes(xlCategory).AxisTitle.Caption = "受験回数"    'x軸のタイトルを変更する
    
    .Axes(xlValue).HasTitle = True    'y軸のタイトルを追加する
    .Axes(xlValue).AxisTitle.Caption = "スコア"    'y軸のタイトルを変更する
    
  End With

End Sub

まとめ

ここまで、Excel VBAでグラフを作成する方法について解説しました。

グラフを自動で作成できるようになると、データを取得してグラフ化など自動でできる範囲が広がるため、おすすめです。

ぜひ使ってみてください。

Excelで作業効率をアップしたい方は、下記の記事もご参照ください。
>>Excelのショートカット一覧 覚えて作業効率アップ!!
>>Excelで覚えておくべき関数 作業効率アップ間違いなし

【Excelについて学びたい方】
Excel 最強の教科書[完全版]
【Excel VBAについて学びたい方】
Excel VBA 脱初心者のための集中講座
エンジニアを目指すなら、TechAcademy!
オンラインスクール受講者数No.1!

・自宅にいながらオンライン完結で勉強できる
➡スクールへの移動時間を削減するため、効率的に学習可能!

・受講生に1人ずつ現役のプロのパーソナルメンターがつく
➡分からないことがわかるまで徹底的にメンターに質問可能!

・チャットで質問すればすぐに回答が返ってくる
➡レスポンスが速いから、わからないことをその場で解決!

・オリジナルサービスやオリジナルアプリなどの開発までサポート
➡就職、転職のときに役立つポートフォリオを開発可能!

無料で体験できるので、まずはお試し
>>TechAcademyの無料体験はこちら

2 COMMENTS

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です