プロが教える店舗&オフィスのセキュリティ対策術

エクセルでグラフを作成し,軸の最小値,最大値をそれぞれセルA1,セルA2で参照させるには,類似質問で以下のマクロが必要だとわかりました。
 ただし,このマクロを実行するには,シート上のグラフを選択してから,Alt+F8キーを押して,マクロダイアログボックスを起動させて,「実行」ボタンを押すという過程が必要です。

Sub 最大最少値()

With ActiveChart.Axes(xlValue)
.MinimumScale = Range("A1").Value '最小値
.MaximumScale = Range("A2").Value '最大値
End With
End Sub


 この煩瑣な過程を経ずに,マクロボタン一発で同様の処理を行いたいと思い,2行目のグラフ選択のコードを加えて,以下のマクロを作成してみました。

Sub 最大最少値()

ActiveSheet.ChartObjects.Select

With ActiveChart.Axes(xlValue)
.MinimumScale = Range("A1").Value '最小値
.MaximumScale = Range("A2").Value '最大値
End With
End Sub

 ところが,「オブジェクト変数または With ブロック変数が設定されていません」というデバッグが表示され,3行目の With ActiveChart.Axes(xlValue) 部がエラーとなり,マクロが実行できません。

 これを解決するには,どうしたらよいでしょうか。ご教授ください。

A 回答 (1件)

アクティブシート上に複数のグラフがありませんか?複数ある場合は、そのうちのどれをSelectするかを指定する必要があるはずです


例えば、こんな感じで、どうでしょう?

ActiveSheet.ChartObjects(1).Select
    • good
    • 0
この回答へのお礼

早々のご指南,ありがとうございます。
ご指摘の通り,アクティブシート上に2つのグラフがありました。
棒グラフと折れ線グラフがありまして,最小値最大値のセル参照させたいグラフは,折れ線の方でした。

試しにそのままのコードを貼りつけて実行してみましたら,棒グラフの方が参照されてしまいました。そこで以下のように,( )内数字を2で試してみました。

ActiveSheet.ChartObjects(2).Select

そうしたら,うまくいきました。
大変ありがとうございました。助かりました!

お礼日時:2017/05/01 19:06

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A