大体でIT

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

大体でIT

Excel VBAで、グラフの系列名を取得する方法について、ご紹介します。グラフの系列名は、「.Name」を使えば取得することができます。系列名の指定は、「ChartObjects(1).Chart.SeriesCollection(1)」というようにします。VBAでのグラフの操作に慣れていきましょう。

はじめに

この記事では、VBAでグラフの系列名を取得する方法について、ご紹介します。

グラフの系列名は、「.Name」を使えば取得することができます。

すべての系列名を取得する場合は、「For Each」を使って系列をループすることで取得できます。

では、VBAでグラフの系列名を取得する方法について、解説していきます。

この記事で紹介すること

  • VBAでグラフの系列名を取得する方法

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

目次

VBAコードまとめ

グラフの系列名を取得するVBAコードについて、まとめています。

VBAコードだけ確認したい場合に、ご活用ください。

'指定した系列の「名前」
Debug.Print ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).Name

'「全て」の系列の名前を取得
'「For」を使う場合
For i = 1 To ActiveSheet.ChartObjects(1).Chart.SeriesCollection.Count
    Debug.Print ActiveSheet.ChartObjects(1).Chart.SeriesCollection(i).Name '名前を取得
Next
'「For Each」を使う場合
For Each a In ActiveSheet.ChartObjects(1).Chart.SeriesCollection
    Debug.Print a.Name '名前を取得
Next

では、解説していきます。

系列のグラフ上での位置関係

系列のグラフ上でのオブジェクトの位置関係を確認してみます。

ChartObject⇒Chart⇒SeriesCollectionの順番

グラフのオブジェクトは、ChartObject⇒Chart⇒SeriesCollectionの順番になります。

イメージは、こんな感じです。

グラフのオブジェクトのイメージ

グラフのオブジェクトのイメージ

系列名を取得する場合は、「ChartObjects(1).Chart.SeriesCollection(1)」というように取得します。

「1つ目」のグラフの「1つ目」の系列という意味になります。

長いですね。

取得する系列

取得する系列は、次のイメージになります。

「系列」のイメージ

「系列」のイメージ

左から1、2、3番目というように割り振られています。

グラフの系列名を取得する

グラフの系列名を取得してみます。

「Name」を使って系列名を取得する

「Name」を使って系列名を取得します。

Sub TEST1()
    
    '「1つ目」のグラフの「1つ目」の系列の「名前」
    Debug.Print ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).Name
    
End Sub

グラフを用意しておきます。

グラフを用意

グラフを用意

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

「系列名」を取得

「系列名」を取得

結果は、「大阪」となりました。

「系列名」を取得できています。

ループしてすべての系列名を取得する

ループしてすべての系列名を取得してみます。

「For」を使う方法と「For Each」を使う方法があります。

オブジェクトのイメージがつくのであれば、「For Each」の方が簡単です。

「For」を使って取得

「For」を使って全ての系列名を取得してみます。

Sub TEST2()
    
    '「1つ目」のグラフの系列をループ
    For i = 1 To ActiveSheet.ChartObjects(1).Chart.SeriesCollection.Count
        Debug.Print ActiveSheet.ChartObjects(1).Chart.SeriesCollection(i).Name '名前を取得
    Next
        
End Sub

グラフを用意しておきます。

グラフを用意

グラフを用意

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

「For」で「すべて」の系列を取得

「For」で「すべて」の系列を取得

「For」で「すべて」の系列を取得できました。

「For Each」を使って取得

次は、「ForEach」を使ってすべての系列名を取得してみます。

Sub TEST3()
    
    '「1つ目」のグラフの系列をループ
    For Each a In ActiveSheet.ChartObjects(1).Chart.SeriesCollection
        Debug.Print a.Name '名前を取得
    Next
        
End Sub

グラフを用意しておきます。

グラフを用意

グラフを用意

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

「For Each」で「すべて」の系列を取得

「For Each」で「すべて」の系列を取得

「For Each」で「すべて」の系列を取得できました。

系列名が取得できれば、SeriesCollection(系列名)というように指定することもできます。

おわりに

この記事では、VBAでグラフの系列名を取得する方法について、ご紹介しました。

グラフの系列名は、「.Name」を使えば取得することができます。

すべての系列名を取得する場合は、「For Each」を使って系列をループすることで取得できます。

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

関連する記事から探す

カテゴリから探す

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

アーカイブから探す