|
標記の件について、教えてください。
二つの散布図グラフがあって、一つのグラフをもう一つのグラフに貼り付けてマクロでFormulaを取得しようとすると正しく取得できず困っています。
いろいろ調べたのですが原因がわかりません。
すでに存在する大量のグラフは下記手法で作成済みで、作り直さずに正しく取得する方法はないでしょうか?
対応策をご存知の方、何か情報をお持ちの方がいらっしゃいましたらお教えいただければ幸いです。
よろしくお願いいたします。
使用環境
Windows7 Pro 64bit
Excel 2003
【発生状況】
シート名:Sheet1
(A)(B)(C)
(1) 0 5 1
(2) 1 3 4
(3) 2 4 2
(4) 3 2 5
1. 上記のデータがシート状にあって、A1:B4を選択してで散布図1.を作成(x軸:A y軸:B)。
2. 作成した散布図をコピー(Ctrlキーを押しながらドラッグ)して散布図2.を作成。y軸をCに変更(B列に表示される枠をC列に移動)。
3. 再度散布図1.をコピーして散布図3.を作成。
4. 散布図2.を選択し、コピー(Ctrl+c)して、散布図3.にペースト(Ctrl+V)。二つのデータが表示される。
5. 下記のマクロを実行すると、以下の結果が得られます。
=SERIES(,Sheet1!$A$1:$A$4,Sheet1!$B$1:$B$4,1) (散布図1.のFormula)
=SERIES(,Sheet1!$A$1:$A$4,Sheet1!$C$1:$C$4,1) (散布図2.のFormula)
=SERIES(,Sheet1!$A$1:$A$4,Sheet1!$B$1:$B$4,1) (散布図3.系列1のFormula)
=SERIES(,Sheet1!$A$1:$A$4,Sheet1!$B$1:$B$4,1) (散布図3.系列2のFormula)
//////C列を参照しているのにB列参照となる//////
6.散布図3.で右クリックして”元のデータ”を確認すると、系列2は正しくC列を参照している。
【使用マクロ】
Sub test()
Dim msg As String
Dim i As Long
Dim j As Long
For i = 1 To ActiveSheet.ChartObjects.Count
With ActiveSheet.ChartObjects(i).Chart
For j = 1 To .SeriesCollection.Count
msg = msg & .SeriesCollection(j).Formula & vbCrLf
Next j
End With
msg = msg & vbCrLf
Next i
MsgBox msg
End Sub
|
|