- ベストアンサー
VBA グラフのデータ参照、タイトル参照のコマンド
シートに1つ埋め込みグラフがあり、そのグラフの データ元の範囲とタイトルの参照Rangを知る方法が 分かりません。方法があれば教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 グラフのデータ元範囲やタイトルの参照アドレスを直接取得するようなプロパティは無いようです。 したがって、SeriesオブジェクトのFormulaプロパティでデータ系列の参照数式を取得して、文字列操作でデータ範囲を求めるしかないように思います。 タイトルについても同様なので、ChartTitle.Characters.Textを範囲から検索するような形になると思います。 参考までに、アクティブシートの1番目のグラフのデータ元アドレスとタイトルのあるアドレスをメッセージボックスに表示するサンプルです。 Sub Sample() Dim sourceData As String Dim n As Integer Dim myRange As Range With ActiveSheet.ChartObjects(1).Chart For n = 1 To .SeriesCollection.Count sourceData = .SeriesCollection(n).Formula sourceData = Replace(Replace(sourceData, "," & n & ")", ""), "=SERIES(", "") If myRange Is Nothing Then Set myRange = Range(sourceData) Set myRange = Application.Union(myRange, Range(sourceData)) Next MsgBox "データ範囲アドレス:" & myRange.Address & vbLf & "タイトル参照アドレス:" _ & myRange.CurrentRegion.Find(what:=.ChartTitle.Characters.Text).Address End With Set myRange = Nothing End Sub グラフタイトルはデータ元範囲のアクティブセル領域に存在している前提でのコードですので、もしそうでない場合はmyRange.CurrentRegionを実状に合わせて変えてください。
お礼
やはり、直接参照するコマンドはないですよね。 文字列操作とReplaceがとても参考になりました。 上記のアプローチで私の行い動作ができました! 直ぐにアドバイスして頂きありがとうございました。