• 締切済み

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文を使ったらいいでしょうか? サンプルをお願いします。

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

自分がちゃんとコードを書けないなら、できるだけ言葉で補足しください。 データ範囲の取り方が不明ですが、一応、可変範囲にするようにしました。意味が読み違えているかもしれません。 >上のプログラムを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

関連するQ&A