FullSeriesCollectionとSeriesCollectionのどちらを使うべき(基本はSeriesCollection)

VBAでグラフを作成すると必ず次の2つのコレクションを使うことになります。

  1. FullSeriesCollection
  2. SeriesCollection

両方ともほぼ同じ役割なのですが、あなたはどちらを使っていますか?

どちらもSeriesオブジェクトのコレクションで、このコレクションからオブジェクトを取り出して、グラフの系列を操作するのに使います。

ただ、どちらを使ってもSeriesオブジェクトは取得できます。

そして、Microsoftのドキュメントを見ても両者の差を理解することは難しいです。

FullSeriesCollection オブジェクトを使用すると、フィルターで除外された Series オブジェクトを取得したり、再び除外したりすることができます。 また、一連の Seriesオブジェクトの完全なセットを反復処理して、プログラムによってフィルター処理または表示することもできます。

FullSeriesCollection オブジェクト (Excel) | Microsoft Docs

FullSeriesCollectionについてはフィルターの記載があるのですが、使用の機会のある機能では無さそうです。

そのため、「デフォルトではどちらを選択して良いものか?」と私は悩んでいました。
特別な処理をしないのであれば、エラー回避のためにデフォルトの選択肢を選びたいです。

そこで、各コレクションに使用できるメソッドとプロパティを調べたところ、基本はSeriesCollectionだろうと確信を得ることができました。

その理由を紹介します。

こんな人に向けた内容です。

  • VBAでグラフをよく作成する
  • SeriesCollectionがよく分からない
  • FullSeriesCollectionとSeriesCollectionの違いが知りたい

コレクションに使用できるメソッドとプロパティ

 各コレクションで使用できるメソッドとプロパティは次の表のようになります。

 メソッド
 SeriesCollectionFullSeriesCollection
Add×
Extend×
Item
NewSeries×
Paste×
 プロパティ
 SeriesCollectionFullSeriesCollection
Application
Count
Creator
Parent

プロパティ側はすべて同じですが、メソッドではFullSeriesCollectionのみ使えないものが複数あります。

特に重要なのはAddメソッドとNewseriesメソッドです。

Add:SeriesCollection コレクションに 1 つまたは複数の新しいデータ系列を追加します。
Newseries:新しいデータ系列を作成します。

どちらも新しい系列を作成してSeriesオブジェクトを返すメソッドです。

(Addメソッドの方が引数が多く、細かな設定ができます)

グラフを作成して終わりのマクロだと使いませんが、シート上のデータに応じて系列を追加しようとするとこのメソッドが必要になってきます。

この理由から、VBAでグラフを作る際はAddメソッドが使えるSeriesCollectionをデフォルトとするのが良いと思います。

《グラフについての他の記事》

他の「VBA」の記事はこちらからどうぞ

VBA

Posted by やろまい