Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1429 / 13645 ツリー ←次へ | 前へ→

【74541】グラフのFormulaをマクロで正しく取得できない mamumo 13/7/20(土) 11:09 質問[未読]
【74542】Re:グラフのFormulaをマクロで正しく取得で... kanabun 13/7/20(土) 18:09 発言[未読]
【74543】Re:グラフのFormulaをマクロで正しく取得で... マナ 13/7/20(土) 21:50 発言[未読]
【74544】Re:グラフのFormulaをマクロで正しく取得で... mamumo 13/7/21(日) 10:19 質問[未読]
【74545】Re:グラフのFormulaをマクロで正しく取得で... マナ 13/7/21(日) 11:30 発言[未読]
【74546】Re:グラフのFormulaをマクロで正しく取得で... マナ 13/7/21(日) 11:54 発言[未読]
【74547】Re:グラフのFormulaをマクロで正しく取得で... mamumo 13/7/21(日) 15:22 お礼[未読]

【74541】グラフのFormulaをマクロで正しく取得で...
質問  mamumo  - 13/7/20(土) 11:09 -

引用なし
パスワード
   標記の件について、教えてください。
二つの散布図グラフがあって、一つのグラフをもう一つのグラフに貼り付けてマクロで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

【74542】Re:グラフのFormulaをマクロで正しく取得...
発言  kanabun  - 13/7/20(土) 18:09 -

引用なし
パスワード
   ▼mamumo さん:

>=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列参照となる//////

こちら
Win7 pro(32bit) Excel2003 です。

=SERIES(,[Book1]Sheet1!$A$1:$A$4,[Book1]Sheet1!$B$1:$B$4,1)

=SERIES(,[Book1]Sheet1!$A$1:$A$4,[Book1]Sheet1!$C$1:$C$4,2)

こうなりました。

【74543】Re:グラフのFormulaをマクロで正しく取得...
発言  マナ  - 13/7/20(土) 21:50 -

引用なし
パスワード
   >=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列参照となる//////

B列参照になるというより、どちらも系列1になっているのが不思議です
散布図3を選んだ状態で↓を実行するとどうなるでしょうか
 
debug.Print activechart.SeriesCollection(2).Formula

【74544】Re:グラフのFormulaをマクロで正しく取得...
質問  mamumo  - 13/7/21(日) 10:19 -

引用なし
パスワード
   kanabunさん、マナさんお返事ありがとうございます。

▼kanabun さん:
>こちら
>Win7 pro(32bit) Excel2003 です。
>=SERIES(,[Book1]Sheet1!$A$1:$A$4,[Book1]Sheet1!$B$1:$B$4,1)
>=SERIES(,[Book1]Sheet1!$A$1:$A$4,[Book1]Sheet1!$C$1:$C$4,2)
>こうなりました。

こちらも以下の別環境で試してみたのですが、残念ながら正しくは出ませんでした。
WinXPHome32bit Excel2000
kanabunさんの得られた結果が狙っている結果なのですが、環境依存する現象なのでしょうか?


▼マナ さん:
>B列参照になるというより、どちらも系列1になっているのが不思議です
>散布図3を選んだ状態で↓を実行するとどうなるでしょうか  
>debug.Print activechart.SeriesCollection(2).Formula

イミディエイトには以下の表示がされました。

=SERIES(,Sheet1!$A$1:$A$4,Sheet1!$B$1:$B$4,1)

おっしゃるとおり、系列1になっています。
なぜなんでしょうか?


下記に問題のExcelをアップロードいたしました。
お忙しい中大変恐れ入りますが、可能であれば一度見ていただければ幸いです。

www.dropbox.com/s/sxbfv07dhprb8iu/Chart_formula_test.xls

よろしくお願いいたします。

【74545】Re:グラフのFormulaをマクロで正しく取得...
発言  マナ  - 13/7/21(日) 11:30 -

引用なし
パスワード
   確認結果だけです。

Excel2010では期待通り

=SERIES(,Sheet1!$A$1:$A$4,Sheet1!$B$1:$B$4,1)

=SERIES(,Sheet1!$A$1:$A$4,Sheet1!$C$1:$C$4,1)

=SERIES(,Sheet1!$A$1:$A$4,Sheet1!$B$1:$B$4,1)
=SERIES(,Sheet1!$A$1:$A$4,Sheet1!$C$1:$C$4,2)

ところがExcel2002だと???

=SERIES(,Sheet1!$A$1:$A$4,Sheet1!$B$1:$B$4,1)

=SERIES(,Sheet1!$A$1:$A$4,Sheet1!$C$1:$C$4,1)

=SERIES(,Sheet1!$A$1:$A$4,Sheet1!$B$1:$B$4,1)
=SERIES(,Sheet1!$A$1:$A$4,Sheet1!$B$1:$B$4,1)

【74546】Re:グラフのFormulaをマクロで正しく取得...
発言  マナ  - 13/7/21(日) 11:54 -

引用なし
パスワード
   追加確認です

同じ環境でも、新たにグラフを作りなおすと期待通りの結果が得られます。
何故か、元ファイルの散布図1をコピーして作ると変な結果となりました。

【74547】Re:グラフのFormulaをマクロで正しく取得...
お礼  mamumo  - 13/7/21(日) 15:22 -

引用なし
パスワード
   ▼マナ さん:
>同じ環境でも、新たにグラフを作りなおすと期待通りの結果が得られます。
>何故か、元ファイルの散布図1をコピーして作ると変な結果となりました。

こちらも再度最初から作り直すと問題なく狙った結果が得られました。
昨日は何度やってもダメだったんですが、不思議です。
なんらかの理由でエクセルが誤作動していて、その際に作成したグラフがおかしいようですね。
あきらめて、グラフをもう一度作り直します。

マナさん、kanabunさんご対応ありがとうございました。

1429 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free