![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
EXCEL2010のVBAでグラフを作成するコードを作成しております。
コードを実行すると入力シートの値を読み込み、別シートにグラフを複数作成します。
入力シートは最初はデータが入っておらず後から入力します。入力されたデータが反映されて
グラフに値が表示されるのですが、目盛は0~値の最高値の少し上くらいまでが表示されます。
これを値が入力シートに入力されてグラフに反映されたら、目盛を表示された値の周辺のみに自動で変更したいのですが何か方法はないでしょうか?
(例)
データの最小値380
最大値400
目盛を370~410くらいにする
No.3ベストアンサー
- 回答日時:
今日はお休みですか?
見栄えが良くなるように条件を加味してみました。
Dim chtObj As ChartObject
Dim ser As Series
Dim mind As Double
Dim maxd As Double
Dim minv As Double
Dim maxv As Double
Dim n As Integer
Set chtObj = ActiveSheet.ChartObjects(1)
With chtObj.Chart
For Each ser In .SeriesCollection
If mind = 0 Or maxd = 0 Then
mind = WorksheetFunction.min(ser.values)
maxd = WorksheetFunction.max(ser.values)
Else
If mind > WorksheetFunction.min(ser.values) Then
mind = WorksheetFunction.min(ser.values)
End If
If maxd < WorksheetFunction.max(ser.values) Then
maxd = WorksheetFunction.max(ser.values)
End If
End If
Next
minv = WorksheetFunction.RoundDown(mind, -1)
maxv = WorksheetFunction.RoundUp(maxd, -1)
With .Axes(xlValue)
n = Int((maxv - minv) / .MajorUnit)
If minv < maxv - .MajorUnit * n Then
minv = maxv - .MajorUnit * (n + 1)
End If
.MinimumScale = minv
.MaximumScale = maxv
If mind < .MinimumScale + .MajorUnit * 3 / 5 Then
.MinimumScale = .MinimumScale - .MajorUnit
End If
End With
End With
No.2
- 回答日時:
まだ不十分ですがこんな感じになると思います。
対象グラフの選定、系列が複数の場合、MajorUnitとの整合性、等々
考慮すべき事が他にもあります。
ワークシートイベントで起動すれば良いと思います。
Dim chtObj As ChartObject
Dim vals As Variant
Dim minv As Double
Dim maxv As Double
Set chtObj = ActiveSheet.ChartObjects(1)
With chtObj.Chart
With .SeriesCollection(1)
vals = .values
minv = WorksheetFunction.min(vals)
minv = WorksheetFunction.RoundDown(minv, -1)
maxv = WorksheetFunction.max(vals)
maxv = WorksheetFunction.RoundUp(maxv, -1)
End With
With .Axes(xlValue)
.MinimumScale = minv
.MaximumScale = maxv
End With
End With
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのイベントVBAを複数のシートで動かしたい 1 2022/12/07 16:55
- Excel(エクセル) Excelで日付のグラフへの表示 2 2022/04/15 11:04
- Excel(エクセル) EXCEL ActiveX コマンドボタンで実行する前にいったんmsgBoxで確認を求めたい 1 2022/07/06 19:41
- Excel(エクセル) Excel 散布図グラフ 外れ値 セル番地参照方法 4 2022/04/19 18:56
- Visual Basic(VBA) Excel vbaについて知恵もしくは、コード教えて下さいm(__)m ① 表にあるデータをコピー、 2 2022/09/01 23:57
- Excel(エクセル) Excel 表の作成について 3 2022/06/16 12:15
- Excel(エクセル) エクセルの散布図で新たに入力した値のデータラベルが空欄になる現象 1 2022/04/26 09:31
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- その他(Microsoft Office) Excelで総数量を変動させたい 2 2022/11/04 23:49
- Excel(エクセル) エクセルの表示形式について教えてください あるセルの「A」という値と、別のセルの「B」という値を組み 4 2023/02/21 21:55
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
白血球が多いとどんな心配があ...
-
彼女のことが好きすぎて彼女の...
-
EXCELで条件付き書式で空白セル...
-
至急!尿検査前日にオナニーし...
-
甲状腺が腫れているが血液検査...
-
検便についてです。 便は取れた...
-
値が入っているときだけ計算結...
-
これって喉仏ですか? 私は女性...
-
2つの数値のうち、数値が小さい...
-
勃起する時って痛いんですか? ...
-
【Excelで「正弦波」のグラフを...
-
尿検査前日に自慰行為した時の...
-
エクセルのグラフで、値0のとき...
-
精子が黄色?
-
MIN関数で空白セルを無視したい...
-
リンク先のファイルを開かなく...
-
EXCELで式からグラフを描くには?
-
Excelで""で囲む方法
-
小数点以下を繰り上げたものを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
首吊りどこ締めるの
-
至急!尿検査前日にオナニーし...
-
白血球が多いとどんな心配があ...
-
尿検査前日に自慰行為した時の...
-
検便についてです。 便は取れた...
-
彼女のことが好きすぎて彼女の...
-
腕を見たら黄色くなってる部分...
-
勃起する時って痛いんですか? ...
-
尿検査の前日は自慰控えたほう...
-
精子が黄色?
-
中出しをするとお腹が痛い・・・。
-
EXCELで条件付き書式で空白セル...
-
口の中に黒い血の塊
-
これって喉仏ですか? 私は女性...
-
2つの数値のうち、数値が小さい...
-
納豆食べた後の尿の納豆臭は何故?
-
EXCELで式からグラフを描くには?
-
小数点以下を繰り上げたものを...
-
excelでsin二乗のやり方を教え...
-
エクセル指定した範囲からラン...
おすすめ情報