dポイントプレゼントキャンペーン実施中!

こんにちは エクセル365を使っています。

以下の様なコードを教えて頂き、グラフの最大値最小値をセル参照にしてみたのですが、動作しないようです。

どこが悪いのか解る方、教えて頂けませんか?

また、質問なのですが、このコードはシートモジュールに記述して良いのでしょうか?

また、このマクロの実行のタイミングはいつなのでしょうか?
マクロの表示のタブを開いてもマクロ名が書いてないようです。

よろしくお願い致します。

Private Sub Worksheet_Change(ByVal Target As Range)
 ’ MAXとMINが逆の場合は処理させない
 If Worksheets("sheet1").Range("E3").Value > Worksheets("sheet1").Range("E2").Value Then

  ' Y軸の最大値と最小値を変更
  Worksheets("sheet1").ChartObjects("グラフ 1").Chart.Axes(xlValue).MaximumScale = Range("E3").Value
  Worksheets("sheet1").ChartObjects("グラフ 1").Chart.Axes(xlValue).MinimumScale = Range("E2").Value
End If
End Sub

「エクセル グラフの最大値 最小値をセル参」の質問画像

A 回答 (2件)

こんにちは


>このコードはシートモジュールに記述して良いのでしょうか?
はい、対象グラフのあるシートモジュールに書きます。
>このマクロの実行のタイミングはいつなのでしょうか?
少し問題かもしれませんが、コードを書いたシートの
すべてセルが変更yされた時に実行されます。
>マクロの表示のタブを開いてもマクロ名が書いてないようです。
引数を持つプロシージャはマクロの表示のタブから実行できません。

>グラフの最大値最小値をセル参照にしてみたのですが、動作しないようです。
これに付いては、確かめていませんが、シートイベントなので
Worksheets("sheet1").部分を省いてみてはいかがでしょう?
下記に示します。
また、ご質問のコードはすべてのセル変更時に
If Worksheets("sheet1").Range("E3").Value > Worksheets("sheet1").Range("E2").Value Then が実行され、条件に一致すればそのあとも実行されます。
なので、実行トリガーを絞った方が良いでしょう。
E2 E3セルが変更された時のように、、、

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("E2:E3")) Is Nothing Then
' MAXとMINが逆の場合は処理させない
If Range("E3").Value > Range("E2").Value Then
' Y軸の最大値と最小値を変更
ChartObjects("グラフ 1").Chart.Axes(xlValue).MaximumScale = Range("E3").Value
ChartObjects("グラフ 1").Chart.Axes(xlValue).MinimumScale = Range("E2").Value
End If
End If
End Sub

対象のグラフの名前が グラフ 1 であることも確認が必要です。
    • good
    • 0
この回答へのお礼

回答頂き、ありがとうございました!

既に大量のデータが常時更新されており、ボタンクリックで動作させる事にしました!

ありがとうございました!

お礼日時:2021/03/31 16:14

ご質問コピペで回答しましたけれど


実行部分 ChartObjects("グラフ 1").Chart.Axes(xlValue) は
Withでまとめた方がよろしいかもです。
With ChartObjects("グラフ 1").Chart.Axes(xlValue)
.MaximumScale = Range("E3").Value
.MinimumScale = Range("E2").Value
End With
    • good
    • 0
この回答へのお礼

ありがとうございます!

BA選んだあとに質問に気づきました、Qchan様のおかげで気持ちよく作業する事が出来ます。

いつも教えて下さり、感謝致します!

お礼日時:2021/03/31 16:17

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