• 締切済み

EXCEL VBA で値の変化点を読み取りグラフ化したい

お世話になります。困っていまして、もしよろしければ助けてください。 【質問】 EXCELでVBAを使って下記のことをしたいと考えています。 時間(1分ごと)と数値の入ったセルがあるのですが、 1.数値の変化点を読み取る。(5分から30分ほど同じ値をしています) 2.セルの変化点から変化点までの差(時間差)を計算 3.変化点ごとに区切りをいれ、縦軸に時間をとりグラフ化 VBA初心者であり、文章も分かりにくいかと思いますが、どうぞよろしくお願いします。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

当然(都合よく)時間の順にデータ行は並んでいるだろう。 (1)最上のデータ行から最終データ行まで以下を繰り返す。 For Nextでよい。 最終行の行番号ははd=range("A65536").end(xlup).row (2)直前行と今の行のデータ値を比べて(If文)、変わったらその行番号が変化点ではないのか。 変化しない間、前の値(変わって最初の値)を保持する変数を作るとよい。 変化点のデータだけ別列にでも書き出せば(コピーしておく)とよい。 (3)変化点から変化点までの時間差は、前に別列に書き出した直前行データの時間との差ではないか (4)>変化点ごとに区切りをいれ、縦軸に時間をとりグラフ化 区切りとは? いずれにしろ、あとはグラフを作る操作をして、マクロの記録をとれば グラフ描画については忠実に再現できるコードになるはず。 EXCEL全般的には、マクロに記録されない操作もあるが。 変化しない間を詰めるのか、間隔をあけるのか、質問に書くべき。 ーー (2)(3)などVBAをやろうとするレベルなら常識だと思うが。 前半は簡単かつ丸投げなのでコードは書かない。 ーー EXCELでは、時間は日付・時刻シリアル値の場合は、小数数点つき数値であることも知っておくと役立つかも。

to8mo7
質問者

お礼

回答ありがとうございます。 質問に書くべきとあった点については、間隔をあけようとしています。