Home » エクセルマクロ・Excel VBAの使い方 » グラフ・Chart » SeriesCollection(1).Valuesとは

動作検証バージョン:64bit Windows 10 Pro + 32bit Excel(バージョン2201 ビルド14827.20198 Microsoft Store)

「エクセル 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とは

「グラフ・Chart」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.