やろまい

国立院卒の理系君。仕事でマクロ(VBA)の開発請負をやってます。金融と投資の事も。引用はご自由に。

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の違いが知りたい

 

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

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

  メソッド
  SeriesCollection FullSeriesCollection
Add ×
Extend ×
Item
NewSeries ×
Paste ×

 

  プロパティ
  SeriesCollection FullSeriesCollection
Application
Count
Creator
Parent

 

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

 

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

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

 

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

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

 

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

 

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

 

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