Excel VBAでグラフ(チャート)を自動生成するには、ChartObjects.Addメソッドを使用します。このメソッドは、シート上に新しいグラフオブジェクトを追加するための基本文法であり、VBAでグラフ作成を行う際の出発点です。本記事では、ChartObjects.Addの使い方を、初心者にも分かりやすく丁寧に解説します。
1. ChartObjects.Addとは?
ChartObjects.Addは、指定した位置とサイズでグラフオブジェクトを新しく挿入するためのVBAメソッドです。
Excel上で手動でグラフを挿入するのと同じことを、自動化コードで実現できます。
たとえば、「セルB2のあたりに幅400、高さ250のグラフを作りたい」という場合に使用します。
2. 基本構文
ChartObjects.Addの基本構文は以下のとおりです。
Worksheets("シート名").ChartObjects.Add(Left, Top, Width, Height)
各引数の意味は次の通りです。
| 引数名 | 内容 |
|---|---|
| Left | グラフの左位置(ポイント値) |
| Top | グラフの上位置(ポイント値) |
| Width | グラフの幅 |
| Height | グラフの高さ |
単位は**ポイント(point)**で、1ポイント ≒ 0.75ピクセルです。(Excelの描画単位)
3. 最もシンプルな例
以下は、アクティブシートにグラフを追加する簡単なサンプルです。
Sub CreateChartSimple()
Dim chtObj As ChartObject
Set chtObj = ActiveSheet.ChartObjects.Add(100, 50, 400, 250)
End Sub
上記コードでは、
- 左位置:100ポイント
- 上位置:50ポイント
- 幅:400ポイント
- 高さ:250ポイント
でグラフ枠だけを作成しています。
4. グラフを変数にセットする理由
Set chtObj = ... と変数にセットすることで、その後にプロパティを設定したり、データ範囲を指定したり、種類を変更したりできます。
変数にセットしないと、どのグラフを操作しているのか曖昧になり、意図しないグラフが変更される場合もあります。
Dim chtObj As ChartObject
Set chtObj = ActiveSheet.ChartObjects.Add(...)
この流れは、VBAでグラフを扱ううえでほぼ必須と覚えておきましょう。
5. グラフ作成時によく使うポイント
ChartObjects.Addを使う際のチェックポイントは次の通りです。
| チェック項目 | 内容 |
|---|---|
| 位置調整 | セル合わせではなくポイント指定 |
| シート指定 | ActiveSheetかSheets(“Sheet名”)か |
| 変数利用 | その後の設定のためSetで受け取る |
| サイズ調整 | 幅・高さは後から変更可 |
6. よくあるミスと対策
| よくあるミス | 解決方法 |
|---|---|
| グラフが見当たらない | Top/Leftがスクロール範囲外の可能性 |
| サイズが小さすぎる/大きすぎる | Width/Heightの値を修正 |
| 他のグラフが上書きされる | Setで変数管理し、対象を明確にする |
7. まとめ
Excel VBAでグラフを作成する基本は、ChartObjects.Addメソッドを使うことです。
ポイントは次の通りです。
- ChartObjects.Addでグラフ枠を生成
- 位置とサイズをポイントで指定
- Setで変数に格納し、その後の設定に備える
これが、VBAによる自動グラフ生成の第一歩です。
コメント