FullSeriesCollectionとSeriesCollectionのどちらを使うべき(基本はSeriesCollection)
VBAでグラフの系列を扱うためには、次の2つのコレクションのどちらかを使う必要があります。
- FullSeriesCollection
- SeriesCollection
両方ともよく似たコレクションなのですが、あなたはどちらを使っていますか?
どちらもSeriesオブジェクトのコレクションで、このコレクションからSeriesオブジェクトを取り出して、グラフの系列を操作するのに使います。
ただ、どちらのコレクションでもSeriesオブジェクトを取得することができます。
両方とも同じような役割のため、どちらを使うべきか迷っていませんか?
結論からいうと、基本的にはSeriesCollectionを使うのが妥当です。
今回は両者の違いと使い分け方を紹介します。
こんな人に向けた内容です。
- VBAでグラフをよく作成する
- SeriesCollectionがよく分からない
- FullSeriesCollectionとSeriesCollectionの違いが知りたい
FullSeriesCollectionとSeriesCollectionの違い
先にFullSeriesCollectionとSeriesCollectionの大きな違いを説明します。
Excelのグラフでは↑の画像のように、グラフの系列を非表示にすることができます。
データソースの選択の画面で系列のチェックを外すと、非表示となります。
系列で非表示のものがあると、FullSeriesCollectionとSeriesCollectionで差が出てきます。
FullSeriesCollectionは非表示の系列もコレクションに含むのですが、SeriesCollectionには非表示の系列が含まれません。
そのため、非表示の系列を操作したい場合にはFullSeriesCollectionを使う必要があります。
とはいえ、非表示の系列を扱うことはほとんどありませんし、コレクションで使えるメソッドの関係から基本的にはSeriesCollectionを使う必要があります。
コレクションで使用できるメソッドとプロパティ
各コレクションで使用できるメソッドとプロパティは次の表のようになります。
メソッド | ||
---|---|---|
SeriesCollection | FullSeriesCollection | |
Add | 〇 | × |
Extend | 〇 | × |
Item | 〇 | 〇 |
NewSeries | 〇 | × |
Paste | 〇 | × |
プロパティ | ||
---|---|---|
SeriesCollection | FullSeriesCollection | |
Application | 〇 | 〇 |
Count | 〇 | 〇 |
Creator | 〇 | 〇 |
Parent | 〇 | 〇 |
プロパティ側はすべて同じですが、メソッドではFullSeriesCollectionのみ使えないものが複数あります。
特に重要なのはAddメソッドとNewseriesメソッドです。
- Add:SeriesCollection コレクションに 1 つまたは複数の新しいデータ系列を追加します。
- Newseries:新しいデータ系列を作成します。
どちらも新しい系列を作成してSeriesオブジェクトを返すメソッドです。
グラフを作成して終わりのマクロだと使いませんが、シート上のデータに応じて系列を追加しようとするとこのメソッドが必要になってきます。
この理由から、VBAでグラフを作る際は系列の追加できるSeriesCollectionを基本とするのが良いと思います。
やむを得ず非表示の系列を操作したい場合のみ、FullSeriesCollectionを使いましょう。
グラフの基本的な作成方法
グラフの基本的な作成方法についてはこちらの記事を参照ください。