Excel VBA グラフのデータソース範囲を取得・変更

投稿者:isc_blog

ActiveChart.SeriesCollection(1).Formula

(解説)

ActiveChart = 現在、選択しているグラフ

SeriesCollection(1) = グラフの線((1)なので1本目)

Formula=「シート名」!「セル範囲」

Formulaプロパティがなかなか見つからなくて苦労しました。

先人達とgoogle先生に感謝です。

これで、現在のデータソース範囲が参照できます。

シート名が取れないと、元データとグラフオブジェクトが別シートに分かれている場合に対応できないんですよ。。

それでこのプロパティの値が必要だったんです。

なお、グラフの線が1本ごとに離れた列を参照しているようなグラフではなくて、$A$1:$F$100のように固まっていれば、VBAを使用しなくても、名前定義とCounta関数の組み合わせで行けるようです。

これだけだと実用的では無いので、ちょっとアドインを作ってみました。

検証用サンプルExcel&アドイン

アドインは直接開いても構いませんが、ずっと使う場合はデフォルトのフォルダにコピーする方が分かりやすいと思います。

1.C:\Documents and Settings\%ユーザ名%\Application Data\Microsoft\AddIns

にコピー

2.ツール(T)→アドイン(I)→有効なアドイン(A)に表示されているはずなので、チェックを入れる。これで、次からはExcelを開くとアドインが有効になります。使わなくなった場合はチェックを外してください。

2011年4月27日