|
▼Kein さん:
こんばんは。いつも参考させて頂いています。
>系列から数式を取得し、カンマ区切りで分解するという方法は良いと思います。
>ただ、拝見したような複雑なコードが必要なのかは分かりません。
>もし既存のグラフに、コピー&ペーストでデータを繰り返し追加していたら、
>SERIES関数の数式がヘンな形になってしまうのは知ってますが、そのようなプロット
>範囲の拡大方法をしていないなら、最も単純な 4つの引数を持つ数式であるはず
>です。即ち
>
>=SERIES(系列名の文字列またはその参照, 項目軸範囲, 数値軸範囲, 系列のIndex)
まず、私が投稿させていただいたコードは、Excel大好きちゃんさんの質問内容から
Seriesオブジェクトのformulaプロパティから取得できるセル参照アドレスを
全て取得するのが目的でした。
投稿コードの例は、グラフが参照しているセルは、全て同一シート内と限定させて頂きました(理由は、Unionメソッドで結果をまとめたかったから・・、私の方の都合です)。
>=SERIES(系列名の文字列またはその参照, 項目軸範囲, 数値軸範囲, 系列のIndex)
これは、体系化されたマニュアルやサイトを確認したわけではありませんが、
いくつかのグラフをサンプリングした結果、私もそうなのだろうという予想はしていました。でも、Keinさんに改めてご提示して頂いて確信できました。感謝です。
>ただ、拝見したような複雑なコードが必要なのかは分かりません。
私は、都合よく将来活用するためには、これではまだ足りないと思っていたんですが・・。
上述したような仕様から、例えば、Seriesオブジェクトのformulaプロパティの内容は、
「=SERIES(Sheet1!$B$1,Sheet1!$A$2:$A$10,{20,30,40,50,60,70,80,90,100},1)」
等の場合も想定しています。
つまり、数値軸範囲として、配列値が入ってしまう場合です。
提示させていただいたコードで今のところこれも正しく取得してくれています。
実際には、ただせる範囲を集めるのではなく、このFormulaプロパティを解析して、
系列名の文字列またはその参照 として、 結果1
項目軸範囲 として、 結果2
数値軸範囲 として、 結果3
というようにセル範囲を識別できるようにしなければいけないかなあ
と思っています。
|
|