Excel VBA質問箱 IV

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

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


69659 / 76732 ←次へ | 前へ→

【11589】Re:グラフの元データ範囲の取得
発言  ichinose  - 04/3/12(金) 8:40 -

引用なし
パスワード
   ▼Excel大好きちゃん さん:
おはようございます。

>皆さん、こんにちは。
>グラフの元データ範囲の取得は、どうやったらできるのでしょうか。設定については、ActiveChart.SetSourceDataメソッドでできることはわかっていますが、逆の取得方法が不明で、調べてみても私の能力ではNGでした。是非、ご教示お願い致します。

私は、普段チャートをあまり触らないので、探ってみましたが、元のデータのデータ範囲に相当するプロパティって、見つかりませんでした。
で、SeriesCollectionを調べてセルアドレスをつなげて行く方法です。
簡単なグラフ(データ範囲が同一シート内でないと失敗してしまいます)でしかテストしていませんが、確認してみて下さい。
コードは、埋め込みグラフでの例です。

'===========================================================
Sub test()
  Dim cht As Chart
  Dim srs As Series
  Dim rng As Range
  Dim r_add As String
  Set cht = ActiveSheet.ChartObjects(1).Chart
  Set rng = Nothing
  For Each srs In cht.SeriesCollection
    r_add = edit_addr(srs.Formula, srs.PlotOrder)
    If r_add <> "" Then
      If rng Is Nothing Then
       Set rng = Range(r_add)
      Else
       Set rng = Union(rng, Range(r_add))
       End If
      End If
    Next
  If Not rng Is Nothing Then
    MsgBox rng.Address
    End If
End Sub
'=================================================================
Function edit_addr(add, podr As Long) As String
  Dim ans()
  wk = Split(Replace$(Replace$(add, "=SERIES(", ""), "," & podr & ")", ""), ",")
  jdx = 1
  For idx = LBound(wk) To UBound(wk)
   If wk(idx) <> "" Then
    ReDim Preserve ans(1 To jdx)
    ans(jdx) = wk(idx)
    jdx = jdx + 1
    End If
   Next
  If jdx > 1 Then
   edit_addr = Join(ans(), ",")
  Else
   edit_addr = ""
   End If
End Function
3 hits

【11584】グラフの元データ範囲の取得 Excel大好きちゃん 04/3/11(木) 18:51 質問
【11589】Re:グラフの元データ範囲の取得 ichinose 04/3/12(金) 8:40 発言
【11591】Re:グラフの元データ範囲の取得 Excel大好きちゃん 04/3/12(金) 9:25 お礼
【11594】Re:グラフの元データ範囲の取得 ichinose 04/3/12(金) 9:54 発言
【11597】Re:グラフの元データ範囲の取得 Excel大好きちゃん 04/3/12(金) 10:07 お礼
【11643】Re:グラフの元データ範囲の取得 ichinose 04/3/12(金) 22:40 発言
【11738】Re:グラフの元データ範囲の取得 Excel大好きちゃん 04/3/15(月) 17:23 お礼
【11644】Re:グラフの元データ範囲の取得 Kein 04/3/13(土) 0:01 回答
【11692】Re:グラフの元データ範囲の取得 ichinose 04/3/14(日) 21:41 発言
【11708】Re:グラフの元データ範囲の取得 Excel大好きちゃん 04/3/15(月) 9:46 発言
【11746】Re:グラフの元データ範囲の取得 ichinose 04/3/15(月) 18:36 発言
【11757】Re:グラフの元データ範囲の取得 ichinose 04/3/15(月) 21:57 発言
【11758】Re:グラフの元データ範囲の取得 更に訂正 ichinose 04/3/15(月) 22:22 発言
【12018】気づかなくて、お礼が遅くなりました。(^^♪ Excel大好きちゃん 04/3/22(月) 12:11 お礼
【11739】Re:グラフの元データ範囲の取得 Excel大好きちゃん 04/3/15(月) 17:26 お礼

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