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メソッドの使用例
\ | A | B | C | D |
---|---|---|---|---|
1 | 日付 | 売上 | 日付 | 売上 |
2 | 2023/01/01 | 100 | 2023/01/01 | 200 |
3 | 2023/01/02 | 150 | 2023/01/02 | 220 |
4 | 2023/01/03 | 130 | 2023/01/03 | 180 |
5 | 2023/01/04 | 160 | 2023/01/04 | 210 |
6 | 2023/01/05 | 170 | 2023/01/05 | 230 |
7 | 2023/01/06 | 180 | 2023/01/06 | 240 |
8 | 2023/01/07 | 200 | 2023/01/07 | 250 |
9 | 2023/01/08 | 210 | 2023/01/08 | 260 |
10 | 2023/01/09 | 220 | 2023/01/09 | 270 |
それでは、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のチャート操作を自動化し、効率的な作業を実現できます。