こんにちは。ご質問の意味を微妙にカン違いしているかもしれませんが、
『管理図』=グラフの事だとして、可変範囲のグラフを作成したいという意味であれば、以下。
作業エリアとしてD1:D2セルを使います。
D1:=(D2-1)*30
D2:1
[Ctrl]+[F3]の[名前定義]で
『date』=OFFSET($B$2,$D$1,,30,)
『data』=OFFSET($C$2,$D$1,,30,)
グラフを作成し、その系列をクリックした時に表示される数式バーに
=SERIES(Sheet1!$C$1,Sheet1!date,Sheet1!data,1)
これで、D2セルに 1...2...と入力する度に範囲が切り替わります。
スクロールバーなどを配置したりすると使い易いかもしれません。
上の作業をマクロで作ると
Sub sample() '可変範囲グラフ作成サンプル。1回のみの実行
Dim s As String
Dim n As Long
Dim r As Range
With ActiveSheet 'Sheets("sheet1")
s = .Name
n = WorksheetFunction.Floor(.Range("A1").End(xlDown).Row, 30)
Set r = .Range("D2")
With .ScrollBars.Add(r.Left, r.Top, r.Width, r.Height)
.Value = 0
.Min = 0
.Max = n
.SmallChange = 30
.LargeChange = 30
.LinkedCell = "D1"
End With
.Names.Add "date", "=OFFSET($B$2,$D$1,,30,)"
.Names.Add "data", "=OFFSET($C$2,$D$1,,30,)"
With .ChartObjects.Add(.Range("E1").Left, 0, 500, 300).Chart
.ChartType = xlLine
.SeriesCollection.NewSeries.FormulaR1C1 = _
"=SERIES(" & s & "!R1C3," & s & "!date," & s & "!data,1)"
.HasTitle = False
End With
End With
Set r = Nothing
End Sub
お礼
ありがとうございます。 以下のように自己解決いたしました。 Sheet1のデータベースと グラフのある管理図シートを用意 n = 何ロット目かをグラフシートのセルA1に入れた後 シート上に配置したコマンドボタン1を押し SUB コマンドボタン1() n = Sheets("管理図シート").Range("a1") ' Sheets("データシート").Select Range(Cells(30 * (n - 1) + 2, 1), Cells(30 * n + 1, 4)).Select Selection.Copy Range("AA2").Select ActiveSheet.Paste End Sub 目的のデータを データベースシートのセルAA2:AD31にコピーし そのデータをグラフシートのグラフに反映させました。 >『管理図』=グラフの事だとして、可変範囲のグラフを作成したいという >意味であれば、以下。 その通りです 早速、試させていただきます