「エクセル SeriesCollection(1).Values」
といった検索キーワードでアクセスがありました。
グラフのデータ系列の値を取得するためのExcel VBAのコード、「SeriesCollection(1).Values」について調べていた方による検索でしょう。
どこかで、
Dim vals As Variant vals = ActiveChart.SeriesCollection(1).Values
あるいは、
Dim vals As Variant vals = Charts(1).SeriesCollection(1).Values
または、
Dim vals As Variant vals = ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).Values
といったコードを、ご覧になったのでしょう。
コード「.SeriesCollection(1).Values」はSeries.Valuesプロパティ
結論をお伝えすると、「.SeriesCollection(1).Values」とは、「.SeriesCollection(1)」で取得できる1つ目のデータ系列を表すSeriesオブジェクトに用意されているValuesプロパティを使用しているコードです。
SeriesオブジェクトのValuesプロパティを使うと、下図のとおりデータ系列の値を配列として取得できます。
上図は「ActiveChart.SeriesCollection(1).Values」の戻り値を、ローカルウィンドウで確認している様子です。
Chart.SeriesCollectionの戻り値はSeriesCollectionまたはSeries
グラフ関連オブジェクトを取得するメソッドは、戻り値が「As Object」と定義されてしまっているものが多いために、読解の難易度が高くなっています。
「SeriesCollection(1).Values」も、その一例です。
ChartオブジェクトのSeriesCollectionメソッドは、オブジェクトブラウザーでは「As Object」と定義されていることしか確認できませんが、
引数が指定されない場合の戻り値はSeriesCollectionコレクションで、引数が指定されたときの戻り値はSeriesオブジェクトです。
ヘルプには以下の記述があります。
グラフまたはグラフ グループ内のすべての系列 (SeriesCollection コレクション) の 1 つの系列 (Series オブジェクト) またはコレクションのいずれかを表すオブジェクトを返します。
SeriesCollection(1)の戻り値をオブジェクト変数に代入しよう
「.SeriesCollection(1)」の戻り値を、Series型のオブジェウト変数に代入してやれば、コードが理解しやすくなるはずです。
Dim vals As Variant Set vals = ActiveChart.SeriesCollection(1).Values
は、
Dim srs As Series Set srs = ActiveChart.SeriesCollection(1) Dim vals As Variant vals = srs.Values
のように書き直すことができます。
「.SeresCollection(1)」の戻り値を、「As Series」と宣言したオブジェクト変数に代入してやれば、コーディング時にも自動メンバー表示されたり、
ショートカットキー[Ctrl]+[I]でヒントも表示されます。
最終更新日時:2022-06-29 06:25
Home » エクセルマクロ・Excel VBAの使い方 » グラフ・Chart » SeriesCollection(1).Valuesとは