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

Excelマクロで棒グラフを作成した後、グラフ元のデータから最大値と最小値を求め、それをグラフ縦軸の最大値と最小値にしたいと思っています。データにはゼロが含まれている可能性があるので、ゼロを除いた最小値を求め、グラフが切れないように若干の数値をプラスしています。しかし、どうしても最小値が「0」になってしまいます。
最小値の部分にゼロ以外の数値を指定する方法をお教えいただけないでしょうか。
どうかよろしくお願いいたします。
---

Sub 縦軸目盛りを調整する()

Sheets("グラフ(情報)").Select
ActiveSheet.ChartObjects("グラフ 1").Activate
ActiveChart.PlotArea.Select

iMin = Round(Application.Small(Range("d6:d75"), WorksheetFunction.CountIf(Range("d6:d75"), 0) + 0.1), 2)
iMax = Round(Application.Max(Range("d6:d75")) + 0.5, 2)

ActiveSheet.ChartObjects("グラフ 1").Activate
ActiveChart.Axes(xlValue).MinimumScale = iMin
ActiveChart.Axes(xlValue).MaximumScale = iMax

End Sub

質問者からの補足コメント

  • ご回答へのお礼文で、うまくいかなかったと書きましたが、その後、いろいろ触っていたらうまくいくようになりました。問題はご指摘いただいた「+1」の部分でした。本当にありがとうございます。

    No.1の回答に寄せられた補足コメントです。 補足日時:2020/07/26 20:37

A 回答 (2件)

こんばんは、


よくわかりませんが、+0.1 は  0がある数+1では?
iMin = Round(Application.Small(Range("d6:d75"), WorksheetFunction.CountIf(Range("d6:d75"), 0) + 1), 2)
この回答への補足あり
    • good
    • 0
この回答へのお礼

ご回答、ありがとうございます。
ご指摘いただいた部分は順位の指定ですので、おっしゃる通り「+1」ですね(^-^;
いくつか作成した中の、修正前のものを投稿してしまいました。申し訳ありません…m(__)m
「+1」でも試してみましたが、結果は同じで、最小値が「0.0」で設定されてしまいます。。。

お礼日時:2020/07/26 20:17

>「+1」でも試してみましたが、結果は同じで、最小値が「0.0」で設定されてしまいます


Roundはどのようなケースを想定されているのかわかりませんが、この辺りに問題があるのではないでしょうか。

Application関数と勘違いなんて事は無いでしょうか?VBAのRoundに関してご確認ください。
参考 https://www.tipsfound.com/vba/05round
    • good
    • 0
この回答へのお礼

「+1」の部分を修正していろいろ触っていたら、いつの間にかうまくいきました。
頭の中が混乱していたようです…(-_-;)
ご回答いただき、ありがとうございました。またround関数のリンクもありがとうございました<(_ _)>

お礼日時:2020/07/26 20:35

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