- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAでグラフのindexを取得したい)
VBAでグラフのindexを取得したい
このQ&Aのポイント
- EXCEL VBA(Office2010)にて、選択中のグラフ(マウスでクリックの状態。Ctrl+クリックではない)のWidthとHeightを取得したいです。
- 選択状態だとActivateされていないため、グラフのindexが取得できません。
- Typename(Selection)が"Chartarea"の状態でそのグラフのindexを取得したい、ということになります。
- みんなの回答 (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
その他の回答 (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を取得しないでもいいですよ。
お礼
親要素へさかのぼってアクセスできるとは、まったく知りませんでした・・・。これで2007辺りから面倒になっていた、グラフの処理が自動化できそうです。ありがとうございました!