• ベストアンサー

EXCELグラフの最大値最小値

EXCELグラフの最大値最小値を、同じシート上にあるセルの値を反映させたいのですが、セルの値が変動しても自動的に反映されるVBコードの作り方をご存知の方いましたら教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

肝心の数字は多分生数字じゃなさそうに思います。 手順: シート名タブを右クリック、コードの表示を選ぶ 現れたシートに下記をコピー貼り付ける private sub Worksheet_Change(byval Target as excel.range)  with activesheet.chartobjects(1).chart.axes(xlvalue)  .maximumscale = range("C2").value  .minimumscale = range("C6").value  end with end sub ふつーにシートを使うと、勝手にグラフに反映する。 #実はシートにグラフが沢山あるときは、どのグラフでどのセルを使いたいのかキチンとご自分で考えて細工を追加してください。 #類似の回答のマクロを同時に使ってはいけません。必ず別々に試します。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.3

>No.1 この回答へのお礼 changeイベントは生データの入力/編集、コピペに反応します。 No.1のコードでは対象セルをC2とC6に限定しています。 参照式あるいは計算式が入っている場合セルをC2とC6ではchangeイベントが発生しません。 従ってNo.2 keithinさんの回答の採用をお勧めします。 keithinさんのコードでは対象セルが限定されていません。 どこかのセルでデータの入力/編集、コピペがあればchangeイベントが発生します。 その結果、最大値最小値が書き変えられるようになっています。 C2とC6の式に使う元データが同じシートにあれば問題ないと思います。 C2とC6の式に使う元データが別シートにある場合 元データが変更されると再計算されて式の戻り値が変化します。 ところがchangeイベントは発生しないのでグラフの最大値最小値は書き変えられません。 この場合はCalculateイベントの方が確実かもしれません。

tk0319
質問者

お礼

VBを起動して、Calculateで作成できました。 ご指南いただきありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • xls88
  • ベストアンサー率56% (669/1189)
回答No.1

データは直接手打ち入力していると考えていいですか? 該当シートの見出しを右クリック>コードの表示でVBE起動 表示されたVBEコードウインドウに下記コードをコピペ 取りあえずグラフ 1としていますが、グラフ名は正しいものに書き換えてください 余り検討していません。単純に最大値最小値を書き換えているだけです。 例えばセル数値が最大値最小値として相応しいかどうか判定文を入れた方が良いと思います。 (入力規則で規制できればそちらで対応してもよいと思います) Private Sub Worksheet_change(ByVal Target As Range) If Intersect(Target, Range("C2,C6")) Is Nothing Then Exit Sub If Target.value = "" Then Exit Sub With ActiveSheet.ChartObjects("グラフ 1").Chart.Axes(xlValue) If Target.Address = "$C$2" Then .MaximumScale = Target.value ElseIf Target.Address = "$C$6" Then .MinimumScale = Target.value End If End With End Sub

tk0319
質問者

お礼

ありがとうございます。 シートの値は手入力だったり、他のシートのセル値を引っ張ってきたりいろいろなグラフを作成するので最大最小値を判定させるグラフを作成する際に参考になります。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • EXCELグラフ縦軸の最大値について

    最大値の異なる2種類の棒グラフを1シートの中で別々に表示している場合ですが、 最大値が小さいほうのグラフを、最大値が大きいほうに合わせて自動的に縦軸の目盛表示を変える方法があれば教えて頂けませんでしょうか。 グラフ1(縦軸最大値:100)、グラフ2(縦軸最大値:60)   → グラフ2の縦軸最大値を自動的に100にする     (必ずグラフ1の最大値の方が大きい値になります) EXCEL2016を利用しています。 よろしくお願いします。

  • 最大値と最小値を自動記録したい

    DDE通信によりリアルタイムの株価データを取得し、 エクセルに株価を表示できる状態になっています。 (株価が変動すると自動的にセルの値が変わる) これを使い2銘柄間の差をあるセルに表示しているのですが、 1日の中における差の最大値と最小値を他のセルに記録し、 値が更新されるのに伴い随時置き換えたいと思っています。 例) 日立280円 東芝260円 の場合は2銘柄間の差は20円。 この値が変化して最大値(最小値)を更新したら置き換え。 それ以外はそれまでの最大値(最小値)の値をセルに保持する、 という感じで記録していきたいのですが実現可能でしょうか? (イメージ) (A1セル=2銘柄間の差) (B1セル=最大値) (C1セル=最小値) A1セルの値の変化 20(B1セルもC1セルも20) 23(B1セルを23に更新) 25(B1セルを25に更新) 22 21 15(C1セルを15に更新) 18 24 26(B1セルを26に更新) 20 当方の環境は エクセル2000 OSはwinXP DDE通信は楽天証券のリアルタイムスプレッドシート を使用しています。 これがエクセルで可能なのかどうかもわからないのですが、 もし方法をおわかりの方がいましたらよろしくお願い致します。

  • エクセルグラフ数値軸の最大最小値にセルの値を入れたい

    エクセル2003で、シートに複数のグラフがあり、データーによって最大値最小値を変更しなければならない物がありますが、軸の書式のところで、セルに入力した数値をそのまま挿入する事は出来ないでしょうか。 通常、”A1”などと入れても入らないですね。何か用法方は無いでしょうか? よろしくお願い致します。

  • excel2010 VBA グラフの目盛の変更

    EXCEL2010のVBAでグラフを作成するコードを作成しております。 コードを実行すると入力シートの値を読み込み、別シートにグラフを複数作成します。 入力シートは最初はデータが入っておらず後から入力します。入力されたデータが反映されて グラフに値が表示されるのですが、目盛は0~値の最高値の少し上くらいまでが表示されます。 これを値が入力シートに入力されてグラフに反映されたら、目盛を表示された値の周辺のみに自動で変更したいのですが何か方法はないでしょうか? (例) データの最小値380       最大値400 目盛を370~410くらいにする

  • excelのグラフでY軸の最小値を自動的に。。。

    エクセルでグラフを書く際、自動的に 最小値 0 最大値 グラフが入る適当な数 で作成されます。 これを、最小値も自動でグラフが入る適当な数にしたいのですが、方法はありますか? 例えば、1001 1505 1906 ですと、 最小値は 1000 のように。。。 もし 2005 3505 5050 だと 最小値は 2000 みたいな感じです。 以上、よろしくお願いします。

  • Excel 空白をグラフに表示しないようにするには?

    Excelでグラフを作成しています。 その中で、最大値、最小値を求めるマクロ記述でセルに組み込んでいます。 グラフは折れ線で表示しますが、マーカのみとしています。 <マクロ記述例> =if(C$36=$B5,C$36,"") 最大値(C$36)と現セルの値($B5)と同じだったらグラフ表示セル(マクロ記述位置)に最大値(C$36)を、そうでなければ""(空白)とする。 <問題点> これらをグラフ表示すると(空白)の値まで表示対象になります。 セルの値がクリアな状態(削除)した状態だとそのセル部分は表示されないようです。マクロで(削除)と同じ値を組み込む方法?、それともグラフの設定方法? グラフの軸表示レンジの最小値を0を超える値に設定すると表示しなくなるのですが、0未満のデータも表示されなくなり問題は残ります。 よい解決をご存じの方、お教え願います。

  • Excel(グラフについて)

    Excelのグラフについてなのですが、 一つのシートにグラフが数十枚(50枚くらい)あります。そのグラフの軸の最小値、最大値、、またサイズ(プロットエリア、グラフエリア)を簡単に揃えることってできるのでしょうか? 分かる方お願いします。

  • エクセルのグラフで推移を知る。。。。

    エクセルのグラフについて質問です。 任意のセル値の過去何ヶ月間(あるいは何日間)の値の推移を折れ線グラフで表示したいと思っています。(1月は100、2月は50、3月は150・・・というふうに) 違う別のセルに新しい値をどんどん入力していけば比較的簡単にできると思いますが、同じセルに値を上書きしていっても上書きされた値がグラフに反映されていくようにしたいです。 具体的にどのようにすればできるかご存知の方いらっしゃいますか???

  • Excelで最大値と最小値を記録したい

    Excelを使って仕事をしています。 データ通信で接続していて、たくさんのセルに温度・圧力・流量などのデータが刻々入ってきます。 このデータを10分区切りで最小値、最大値を記録したのですがうまくゆきません。 現在は10分区切りの瞬間の値だけを記録していますが、データの意味を最大限活用したくて最小値と最大値を記録したいのです。 どなたか知恵をお貸しください。

  • エクセルで別シートからの最大値の反映

    エクセルで別のシートの数個のセルの数値の中から最大(最小)の値を選んで入力するにはどうしたらいいですか?

専門家に質問してみよう