AddChart2メソッド解説(Excel VBA)

Excel VBA: AddChart2メソッドの使い方

VBAでExcelのチャートを操作する際には、様々なメソッドがありますが、その中でも「AddChart2メソッド」は特に便利なものの一つです。「AddChart2メソッド」を使用すると、プログラムによって新しいチャートを追加し、その種類やスタイルを指定することができます。

AddChart2メソッドの基本的な使い方

まずは、AddChart2メソッドの基本的な使い方から見ていきましょう。このメソッドは「Shapes」オブジェクトの一部で、以下のような形式で使用します:

    Shapes.AddChart2(Style, XlChartType, Left, Top, Width, Height, NewLayout)

ここで各パラメーターの意味は以下の通りです:

  • Style: チャートのスタイルを指定します。
  • XlChartType: チャートの種類を指定します。
  • Left, Top: チャートの左上角の位置を指定します。
  • Width, Height: チャートの幅と高さを指定します。
  • NewLayout: チャートが新しいレイアウトを使用するかどうかを指定します。既定値はFalseです。

サンプルコード: AddChart2メソッドの使用例

ABCD
1日付売上日付売上
22023/01/011002023/01/01200
32023/01/021502023/01/02220
42023/01/031302023/01/03180
52023/01/041602023/01/04210
62023/01/051702023/01/05230
72023/01/061802023/01/06240
82023/01/072002023/01/07250
92023/01/082102023/01/08260
102023/01/092202023/01/09270

それでは、AddChart2メソッドの使用例を見てみましょう。以下のサンプルコードでは、データが入力されている範囲に対して棒グラフを作成します。

Sub AddChartExample()
  Dim rng As Range
  Dim cht As Chart

  Set rng = Worksheets("Sheet1").Range("A1:B10")

  Set cht = Worksheets("Sheet1").Shapes.AddChart2(251, xlColumnClustered, 100, 100, 300, 200).Chart

  cht.SetSourceData rng
End Sub

ここで、”Sheet1″の”A1:B10″の範囲にデータが存在し、そのデータを元に棒グラフを作成します。AddChart2メソッドの第一引数にはスタイルの番号(この例では251)を、第二引数にはチャートの種類を指定します。この例ではxlColumnClusteredを指定して、クラスタ化された棒グラフを作成しています。第3、4引数でチャートの左上角の位置を、第5、6引数でチャートの幅と高さを指定しています。

このメソッドはChartオブジェクトを返すため、「Set cht = …」とすることで新たに作成したチャートをcht変数に格納します。次に、「cht.SetSourceData rng」を使用して、チャートのデータソースを設定します。ここでのrngは、チャートのデータが格納されている範囲を指しています。

サンプルコード: AddChart2メソッドを使用して複数のチャートを作成する例

次に、AddChart2メソッドを使用して複数のチャートを作成する例を見てみましょう。以下のサンプルコードでは、”Sheet1″の”A1:B10″と”C1:D10″の2つの範囲に対して別々のチャートを作成します。

Sub AddMultipleChartsExample()
  Dim rng1 As Range
  Dim rng2 As Range
  Dim cht1 As Chart
  Dim cht2 As Chart

  Set rng1 = Worksheets("Sheet1").Range("A1:B10")
  Set rng2 = Worksheets("Sheet1").Range("C1:D10")

  Set cht1 = Worksheets("Sheet1").Shapes.AddChart2(251, xlColumnClustered, 100, 100, 300, 200).Chart
  Set cht2 = Worksheets("Sheet1").Shapes.AddChart2(251, xlColumnClustered, 400, 100, 300, 200).Chart

  cht1.SetSourceData rng1
  cht2.SetSourceData rng2
End Sub

このコードでは、2つの異なるデータ範囲(rng1とrng2)に対して、それぞれ異なる位置にチャート(cht1とcht2)を作成しています。それぞれのチャートに対してSetSourceDataメソッドを使用し、チャートのデータソースを設定しています。

以上が、VBAのAddChart2メソッドの基本的な使い方と使用例です。このメソッドを上手く利用することで、Excelのチャート操作を自動化し、効率的な作業を実現できます。