「activechart グラフの有無判定」
といった検索キーワードに気が付きました。
ActiveChartプロパティを使ってグラフを表すChartオブジェクトを取得する際に、
ちゃんとグラフが選択されているかどうか判定・確認するには、どうすればいいのかを探していらしたのでしょうか。
ActiveChartでグラフが選択されているか確認するサンプル
以下のSubプロシージャが参考になるでしょう。
Dim cht As Chart
Set cht = ActiveChart
If cht Is Nothing Then
MsgBox "グラフは選択されていません。"
Else
MsgBox "グラフが選択されています!"
End If
End Sub
Chart型に限らず、オブジェクト変数の初期値はNothingです。
オブジェクト変数が初期値Nothingのままであるならば、ActiveChartプロパティの戻り値を代入する
Set cht = ActiveChart
でChartオブジェクトを取得できなかった、すなわちグラフが選択されていなかった、と判定できます。
ローカルウィンドウでオブジェクト変数を確認しよう
拙著『いちばんやさしいExcel VBAの教本』でも多用しているローカルウィンドウを使って、オブジェクト変数を確認しておきましょう。
メニュー[表示]-[ローカルウィンドウ]からローカルウィンドウを表示した状態で、上記Subプロシージャをショートカットキー[F8]でステップ実行し始めると、オブジェクト変数初期値Nothingを確認できます。
[F8]でステップ実行を継続して、もしもグラフが選択されていれば、
Set cht = ActiveChart
の実行後にNothingではなくなり、変数名の前に[+]が表示され、下図のようにオブジェクト変数の中身を見られるようになります。
最終更新日時:2021-09-29 12;55
Home » エクセルマクロ・Excel VBAの使い方 » グラフ・Chart » ActiveChartでChartを取得できたか確認する