• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAでグラフのindexを取得したい)

VBAでグラフのindexを取得したい

このQ&Aのポイント
  • EXCEL VBA(Office2010)にて、選択中のグラフ(マウスでクリックの状態。Ctrl+クリックではない)のWidthとHeightを取得したいです。
  • 選択状態だとActivateされていないため、グラフのindexが取得できません。
  • Typename(Selection)が"Chartarea"の状態でそのグラフのindexを取得したい、ということになります。

質問者が選んだベストアンサー

  • ベストアンサー
  • end-u
  • ベストアンサー率79% (496/625)
回答No.2

ぁ、いやいや。 ChartAreaをSelectしていてもActiveChartは在ります。 ∴ActiveChart.Parentで良いのでした。 If Not ActiveChart Is Nothing Then   With ActiveChart.Parent     MsgBox .Index & vbLf & .Left & vbLf & .Top _            & vbLf & .Width & vbLf & .Height   End With End If

Yuya_Tachibana
質問者

お礼

親要素へさかのぼってアクセスできるとは、まったく知りませんでした・・・。これで2007辺りから面倒になっていた、グラフの処理が自動化できそうです。ありがとうございました!

その他の回答 (1)

  • end-u
  • ベストアンサー率79% (496/625)
回答No.1

Parent プロパティ を使うと良いです。 ChartObject └Chart  └ChartArea なので .Parent.Parent つまりChartAreaの親Objectの親ObjectがChartObject。 Dim c As ChartObject If TypeName(Selection) = "ChartArea" Then   Set c = Selection.Parent.Parent   MsgBox c.Index & vbLf & c.Left & vbLf & c.Top _           & vbLf & c.Width & vbLf & c.Height   Set c = Nothing End If >WidthとHeightを取得したい.. 場合、上記例のようにIndexを取得しないでもいいですよ。

関連するQ&A