グラフの作成:VBAでExcelグラフを自動生成する方法

2024/07/06

今回は、VBA(Visual Basic for Applications)を使用してExcelでグラフを自動生成する方法について学んでいきましょう。グラフを作成することで、データの可視化や分析がよりわかりやすくなります。

基本的なグラフの作成

まずは、基本的な折れ線グラフの作成方法について見ていきましょう。


  Sub CreateLineChart()
      Dim ws As Worksheet
      Dim chartObj As ChartObject
      Dim rngData As Range
      Dim rngX As Range
      Dim rngY As Range
      
      ' シートを選択する
      Set ws = ThisWorkbook.Sheets("Sheet1")
      
      ' データの範囲を指定する
      Set rngData = ws.Range("A1:B10")
      Set rngX = rngData.Columns(1)
      Set rngY = rngData.Columns(2)
      
      ' グラフオブジェクトを作成する
      Set chartObj = ws.ChartObjects.Add(Left:=100, Width:=300, Top:=50, Height:=300)
      With chartObj.Chart
          .ChartType = xlLine
          .SetSourceData Source:=rngData
          .SeriesCollection(1).XValues = rngX
          .SeriesCollection(1).Values = rngY
          .HasTitle = True
          .ChartTitle.Text = "折れ線グラフ"
      End With
  End Sub
    

この例では、Sheet1にあるデータを使用して折れ線グラフを作成し、タイトルを設定しています。

棒グラフの作成

次に、棒グラフの作成方法について見ていきましょう。


  Sub CreateBarChart()
      Dim ws As Worksheet
      Dim chartObj As ChartObject
      Dim rngData As Range
      Dim rngX As Range
      Dim rngY As Range
      
      ' シートを選択する
      Set ws = ThisWorkbook.Sheets("Sheet1")
      
      ' データの範囲を指定する
      Set rngData = ws.Range("A1:B10")
      Set rngX = rngData.Columns(1)
      Set rngY = rngData.Columns(2)
      
      ' グラフオブジェクトを作成する
      Set chartObj = ws.ChartObjects.Add(Left:=100, Width:=300, Top:=50, Height:=300)
      With chartObj.Chart
          .ChartType = xlColumnClustered
          .SetSourceData Source:=rngData
          .SeriesCollection(1).XValues = rngX
          .SeriesCollection(1).Values = rngY
          .HasTitle = True
          .ChartTitle.Text = "棒グラフ"
      End With
  End Sub
    

この例では、同じくSheet1にあるデータを使用して棒グラフを作成し、タイトルを設定しています。

まとめ

グラフの作成は、VBAを使ってExcelのデータを視覚的に表現する重要な手段です。折れ線グラフや棒グラフの他にも、さまざまな種類のグラフを自動生成することができます。

この記事はAIを使用して作成されています。