大体でIT

-ちょっと使えるネタを紹介-

大体でIT

Excel VBAで、「別シート」や「グラフシート」にグラフを作成する方法について、ご紹介します。別シートにグラフを作成する際のポイントは、参照元の「ワークシート」まで指定して、参照範囲を設定することです。ワークシートまで指定しておけば、別シートでも同じシートでも、グラフを作成することができます。

はじめに

この記事では、VBAで「別シート」にグラフを作成する方法について、ご紹介します。

別シートにグラフを作成する際のポイントは、「参照元」の「ワークシート」まで指定することです。

VBAコードでいうと、「Worksheets("元データ").Range("A1").CurrentRegion」という感じです。

ワークシートまで指定しておけば、別シートでも同じシートでも、グラフを作成することができます。

では、VBAで「別シート」にグラフを作成する方法について、解説していきます。

この記事で紹介すること

  • VBAで「別シート」にグラフを作成する方法

目次から見たい項目へ移動すると便利ですよ。

目次

VBAでグラフシートにグラフを作成する

VBAでグラフシートにグラフを作成する方法です。

参照範囲を「Range()」だけにするとエラー

参照範囲を設定する際に、「Range()」だけにするとエラーとなりますので、注意です。

Sub TEST1()
    
    Charts.Add 'グラフシートを追加
    
    'グラフを設定する
    ActiveChart.ChartType = xlColumnClustered '集合縦棒グラフにする
    ActiveChart.SetSourceData Range("A1").CurrentRegion '参照範囲を設定
    
End Sub

これは、エラーとなってしまいます。

参照範囲が「Range()」だけだとエラー

参照範囲が「Range()」だけだとエラーになりました

参照範囲が「Range()」だけだとエラーになりました。

ポイントは、「Worksheets("元データ").Range("A1").CurrentRegion」のように「Worksheets("元データ")」まで入力することです。

グラフシートを追加して棒グラフを作成する

グラフシートを追加して棒グラフを作成してみます。

参照範囲を「Worksheets("元データ").Range("A1").CurrentRegion」というように「Worksheets("元データ")」まで指定します。

Sub TEST2()
    
    Charts.Add 'グラフシートを追加
    
    'グラフを設定する
    ActiveChart.ChartType = xlColumnClustered '集合縦棒グラフにする
    ActiveChart.SetSourceData Worksheets("元データ").Range("A1").CurrentRegion '参照範囲を設定
    
End Sub

元データを用意しておきます。

元データ

元データを用意しておきます

では、VBAコードを実行してみます。

グラフシートを追加してグラフを作成できた

VBAでグラフシートを追加してグラフを作成できました

VBAでグラフシートを追加してグラフを作成できました

既存のグラフシートに棒グラフを作成する

既存のグラフシートに、棒グラフを作成してみます。

手順としては、

  • グラフシートをアクティブにする
  • グラフの種類を設定
  • グラフの参照範囲を設定する

という感じです。

Sub TEST3()
    
    Charts("グラフ1").Activate 'グラフシートをアクティブにする
    
    'グラフを設定
    ActiveChart.ChartType = xlColumnClustered '集合縦棒にする
    ActiveChart.SetSourceData Worksheets("元データ").Range("A1").CurrentRegion '参照範囲を設定
    
End Sub

グラフシートを作成しておきます。

グラフシートが既にある場合

グラフシートが既にある場合です

では、VBAコードを実行してみます。

既存のグラフシートにグラフを作成できた

VBAで既存のグラフシートにグラフを作成できました

VBAで既存のグラフシートにグラフを作成できました

VBAで別のワークシートにグラフを作成する

VBAで「別のワークシート」にグラフを作成する、というのをやってみます。

参照範囲を「Range()」だけにするとグラフを作成できない

先ほどと同じように、参照範囲を「Range()」だけにするとグラフを作成できないです。

Sub TEST4()
    
    Worksheets.Add 'ワークシートを追加
    
    'グラフを挿入する
    ActiveSheet.Shapes.AddChart2.Select 'グラフを挿入
    ActiveChart.ChartType = xlColumnClustered '集合縦棒
    ActiveChart.SetSourceData Range("A1").CurrentRegion '参照範囲を設定
    
End Sub

VBAコードを実行してみます。ダメな場合です。

Rangeだけだとグラフが作成できない

Rangeだけだとグラフが作成できません

Rangeだけだとグラフが作成できませんね。

参照範囲に元のワークシートの「Worksheets("元データ")」までを指定する必要があります。

ワークシートを追加して棒グラフを作成

ワークシートを追加して棒グラフを作成してみます。

手順は、

  • ワークシートを追加
  • グラフを挿入
  • グラフを種類を設定
  • グラフの参照範囲を指定

参照範囲は、「Worksheets("元データ").Range("A1").CurrentRegion」とします。

Sub TEST5()
    
    Worksheets.Add 'ワークシートを追加
    
    'グラフを挿入する
    ActiveSheet.Shapes.AddChart2.Select 'グラフを挿入
    ActiveChart.ChartType = xlColumnClustered '集合縦棒にする
    ActiveChart.SetSourceData Worksheets("元データ").Range("A1").CurrentRegion '参照範囲を設定
    
End Sub

元データを用意しておきます。

元データ

元データを用意しておきます

では、VBAコードを実行してみます。

別シートを追加してグラフを作成できた

VBAで別シートを追加してグラフを作成できました

VBAで別シートを追加してグラフを作成できました

既存の別ワークシートに棒グラフを作成

「既存」の別ワークシートに棒グラフを作成してみます。

手順は、

  • 既存のワークシートを「アクティブ」にする
  • グラフを挿入
  • グラフを種類を設定
  • グラフの参照範囲を指定

違いは、「既存のワークシートをアクティブにする」というところです。

もちろん、参照範囲は、「Worksheets("元データ").Range("A1").CurrentRegion」とシートまで指定します。

Sub TEST6()
    
    Worksheets("Sheet1").Activate 'Sheet1をアクティブにする
    
    'グラフを挿入する
    ActiveSheet.Shapes.AddChart2.Select 'グラフを挿入
    ActiveChart.ChartType = xlColumnClustered '集合縦棒にする
    ActiveChart.SetSourceData Worksheets("元データ").Range("A1").CurrentRegion '参照範囲を設定
    
End Sub

ワークシートを作成しておきます。

別シートが既にある場合

別シートが既にある場合です

では、VBAコードを実行してみます。

シートをアクティブにしてグラフを挿入できた

VBAでシートをアクティブにしてグラフを挿入できました

VBAでシートをアクティブにしてグラフを挿入できました

おわりに

この記事では、VBAで「別シート」にグラフを作成する方法について、ご紹介しました。

別シートにグラフを作成する際のポイントは、「参照元」の「ワークシート」まで指定することです。

VBAコードでいうと、「Worksheets("元データ").Range("A1").CurrentRegion」という感じです。

ワークシートまで指定しておけば、別シートでも同じシートでも、グラフを作成することができます。

参考になればと思います。最後までご覧くださいまして、ありがとうございました。

関連する記事から探す

カテゴリから探す

カテゴリから見たい項目を探すと便利ですよ。

アーカイブから探す