• 締切済み

エクセルのデータのグラフを作りたい

ExcelのA列に12000のデータがあります。 0.1秒ごとにA1,A2,A3…の値をいれていき、12000のデータを全て表示した20分後にはまたA1から始めて繰り返す、横軸が時間で縦軸はAのデータの数値のグラフをつくりたいです。 どなたかお分かりになる方、ご教授お願いします。

みんなの回答

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.1

B列に、0.1秒刻みの時間を入れておけば素直でしょうが、それでは面白くないのでA列のみでのグラフ化をやってみました。 <前提> ・VBAコードは、あるシートのシートモジュールに記述する。 ・そのシートにコマンドボタンを2個(コントロールツールの方)置く。 ・適当なデータ範囲で、お好きな形式のグラフを1個作成しておく。 ・コマンドボタン1でグラフのプロットを開始し、コマンドボタン2で停止する。 ・xl2010、さすがに20分の試行は勘弁して欲しいので、1200個のデータで試しております。 Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Private Sub CommandButton1_Click() Range("C1").Value = 0 test End Sub Private Sub CommandButton2_Click() Range("C1").Value = 1 End Sub Private Sub test() Dim targetRange As Range Dim arrayX As Variant Dim i As Long, endRow As Long endRow = Range("A" & Me.Rows.Count).End(xlUp).Row arrayX = Range(Range("A1"), Range("A" & Me.Rows.Count).End(xlUp)).Value For i = 1 To endRow arrayX(i, 1) = 0.1 * i Next i ThisWorkbook.Names.Add Name:="Time", RefersTo:=arrayX Do With Me.ChartObjects(1).Chart.SeriesCollection(1) .XValues = "='" & ThisWorkbook.Name & "'!Time" For i = 1 To endRow If Range("C1").Value = 1 Then Exit For .Values = Range(Range("A1"), Range("A" & i)) 'B列に時間を入れておく場合 ' .XValues = Range(Range("B1"), Range("B" & i)) Sleep 100 DoEvents Next i End With Loop Until Range("C1").Value = 1 End Sub