Excel VBA でグラフ専用シート(Chart Sheet)を新規作成する方法

目次

概要

売上推移や構成比を一目で確認できるよう、データシートとは別に グラフ専用シート(Chart Sheet) を作成したい場面がございます。VBA の Charts.Add2 メソッドを使用すると、ワークブック末尾に独立したグラフシートを簡単に追加し、任意の名前を付与できます。本記事では、基本コードとあわせて設定項目のポイントを丁寧に解説いたします。


前提条件

項目内容
対応 ExcelMicrosoft 365 または 2016 以降
元データ任意(本記事ではコード例に直接データ範囲をセル参照)
マクロ配置標準モジュール

サンプルコード(VBA)

Sub InsertChartSheet()

    Dim chtSheet As Chart              ' 作成されるチャートシート
    Dim srcRange As Range              ' グラフ元データ範囲
    
    '--- グラフ化するデータ範囲を設定(例:シート「Sales」の B2:C13)---
    Set srcRange = Worksheets("Sales").Range("B2:C13")
    
    '--- グラフシートをワークブック末尾に追加 ---
    Set chtSheet = Charts.Add2              ' Excel 2013 以降の推奨メソッド
    chtSheet.Name = "SalesOverviewChart"    ' 任意のシート名を設定
    
    '--- グラフタイプを設定(例:集合縦棒)---
    chtSheet.ChartType = xlColumnClustered
    
    '--- データ系列を挿入 ---
    chtSheet.SetSourceData Source:=srcRange

    '--- 見た目を調整(任意)---
    With chtSheet.Chart
        .HasTitle = True
        .ChartTitle.Text = "Monthly Sales Overview"
        .Axes(xlCategory).HasTitle = True
        .Axes(xlCategory).AxisTitle.Text = "Month"
        .Axes(xlValue).HasTitle = True
        .Axes(xlValue).AxisTitle.Text = "Amount (USD)"
    End With
    
    MsgBox "グラフシート「" & chtSheet.Name & "」を追加しました。", vbInformation

End Sub

コードの主なポイント

説明
9Charts.Add2 はグラフシートをブック末尾に挿入し、デフォルトで空のグラフオブジェクトを生成いたします。
10Name プロパティでシート名を変更できます。既存シートと重複しない名前をご指定ください。
13ChartType でグラフ形式を選択します。ほかに xlLine, xlPie など多彩な定数がございます。
16SetSourceData により元データ範囲を一括で系列化します。
19–23タイトル・軸ラベルを設定すると、読み手に直感的なグラフとなります。

応用例

要件実装方法
グラフシートをワークブック先頭に挿入したいCharts.Add2(Before:=Sheets(1))Before 引数を指定します。
作成済みシートが存在する場合に上書き回避シート名重複を WorksheetExists の自作関数で判定し、必要に応じて連番を付与してください。
グラフ系列を個別に設定したいchtSheet.SeriesCollection.NewSeries でシリーズを追加し、ValuesXValues を別々に割り当てます。

よくある質問

質問回答
Charts.AddCharts.Add2 の違いは何ですか。Add2 は Excel 2013 以降で推奨されるメソッドで、一部の新機能に対応しております。
グラフシートではなく埋め込みグラフを作りたい場合はどうすればよいですか。Worksheets("SheetName").Shapes.AddChart2 を使用すると、シート上にオブジェクトとして挿入できます。

まとめ

Charts.Add2 メソッドを利用すれば、VBA からわずか数行で独立したグラフシートを作成し、任意の名称やグラフタイプを設定できます。レポート専用ブックを自動生成する際などに大変有用です。ぜひ業務の自動化にお役立てください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次