|
>セルに入力してからグラフを作成する方法ではデータ数が多すぎてうまくできませんでした。
とは?
エラーが出ますか?
それとも、データ数が多くてグラフ曲線ではうまく表現できないという意味ですか?
後者の場合、グラフの利用目的にもよりますが、データを間引いて大まかな表現に留めるとか、
表示範囲を限定して、見たい時にグラフ範囲を変動させる、などの方法が考えられます。
グラフ範囲を可変にするのは一般機能だけでもできますが、作成サンプルとしては以下。
Sub test()
Const x As Long = 7000 'テスト用データ行数
Const n As Long = 100 'グラフ表示範囲行数初期値
Dim r As Range
Dim s As String
With Sheets.Add
'テストデータ作成
.Range("A1:C1").Value = [{"data","x移動","x範囲数"}]
With .Range("A2").Resize(x)
.Formula = "=RAND()*" & x
.Value = .Value
End With
'ScrollBar
For Each r In .Range("B3:C3")
With .ScrollBars.Add(r.Left, r.Top, r.Width, r.Height)
.Value = 1
.Min = 1
.Max = x
.SmallChange = 1
.LargeChange = 10
.LinkedCell = r.Offset(-1).Address
End With
Next
.Range("C2").Value = n
'[名前定義]
.Names.Add "data", "=OFFSET($A$1,$B$2,0,$C$2,)"
s = .Name
'グラフ作成
With .ChartObjects.Add(.Range("D1").Left, 0, 500, 300).Chart
.HasLegend = False
.ChartType = xlLine
.SeriesCollection.NewSeries.Formula = "=SERIES(,," & s & "!data,1)"
.Axes(xlValue).MaximumScale = x
.HasAxis(xlCategory) = False
End With
End With
End Sub
|
|