- 締切済み
Sub M()
Sub M() Range("A1").Select Range(Selection, Selection.End(xlDown)).Select Range("A1:A289,B289").Select Range("B289").Activate Range(Selection, Selection.End(xlUp)).Select Charts.Add ActiveChart.ChartType = xlXYScatterSmoothNoMarkers ActiveChart.SetSourceData Source:=Sheets("08.31_n3_rev477_fai0_x300_y20_z"). _ Range("A1:B289"), PlotBy:=xlColumns ActiveChart.Location Where:=xlLocationAsNewSheet With ActiveChart .HasTitle = False .Axes(xlCategory, xlPrimary).HasTitle = True .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "T[sec]" .Axes(xlValue, xlPrimary).HasTitle = True .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "U[v]" End With Sheets("08.31_n3_rev477_fai0_x300_y20_z").Select Range("A1").Select Range(Selection, Selection.End(xlDown)).Select Range("A1:A289,C289").Select Range("C289").Activate Range(Selection, Selection.End(xlUp)).Select Charts.Add ActiveChart.ChartType = xlXYScatterSmoothNoMarkers ActiveChart.SetSourceData Source:=Sheets("08.31_n3_rev477_fai0_x300_y20_z"). _ Range("A1:A289,C1:C289"), PlotBy:=xlColumns ActiveChart.Location Where:=xlLocationAsNewSheet With ActiveChart .HasTitle = False .Axes(xlCategory, xlPrimary).HasTitle = True .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "T[sec]" .Axes(xlValue, xlPrimary).HasTitle = True .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "U[v]" End With End sub このプログラムなのですが、 A289をx軸 B289~IV289までがy軸 上のプログラムをIV289までまわそうとFor文を 使って繰り返そうとしていますが、うまくできません。 どのようにFor文を使ったらいいでしょうか? サンプルをお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- Wendy02
- ベストアンサー率57% (3570/6232)
自分がちゃんとコードを書けないなら、できるだけ言葉で補足しください。 データ範囲の取り方が不明ですが、一応、可変範囲にするようにしました。意味が読み違えているかもしれません。 >上のプログラムをIV289までまわそうと これは、バージョンにもよりますが、私の知っている範囲なら無理です。たぶん、途中でハングすると思います。せいぜい、50~60枚程度だと思います。 '// Sub MyGraphs() Const SHNM As String = "08.31_n3_rev477_fai0_x300_y20_z" Dim Chrt As Chart Dim orgSh As Worksheet Dim chtSrc As Range Dim i As Long Dim acBk As Workbook Set acBk = ActiveWorkbook Set orgSh = acBk.Worksheets(SHNM) With orgSh Application.ScreenUpdating = False Set chtSrc = .Range("A1", .Cells(Rows.Count, 1).End(xlUp)) For i = 1 To .Cells(1, Columns.Count).End(xlToLeft).Column - 1 Set Chrt = acBk.Charts.Add(After:=acBk.Sheets(acBk.Sheets.Count)) With Chrt .ChartType = xlXYScatterSmoothNoMarkers .SetSourceData Source:=Union(chtSrc, chtSrc.Offset(, i)), _ PlotBy:=xlColumns .Location Where:=xlLocationAsNewSheet .Name = "グラフ" & CStr(i) End With With Chrt .HasTitle = False .Axes(xlCategory, xlPrimary).HasTitle = True .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "T[sec]" .Axes(xlValue, xlPrimary).HasTitle = True .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "U[v]" End With Next End With Application.ScreenUpdating = True orgSh.Activate Set orgSh = Nothing End Sub