Page 652 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼グラフの系統設定 リモーネ 03/1/30(木) 19:19 ┗Re:グラフの系統設定 Jaka 03/1/31(金) 13:54 ─────────────────────────────────────── ■題名 : グラフの系統設定 ■名前 : リモーネ ■日付 : 03/1/30(木) 19:19 -------------------------------------------------------------------------
いつもお世話になっております。 グラフにデータ表示する場合、 同ブック内のセル範囲をRangeで指定すれば 系統設定をする事によりグラフが実現できると考えております。 With Worksheets( データのあるシート ) Charts( グラフ表示シート ).SeriesCollection(1).XValues = .Range( セル範囲 ) End With 上記は、同一ブック内にある場合での実現方法ですが、 データのあるシートが別のEXCELファイルに存在する場合、 どの様に設定すれば宜しいでしょうか? 以上、ご教授宜しくお願い致します。 |
こんにちは。 リモーネ さんへの直接な回答ではありません。 [#2445]をちょっと変更した物で、グラフの種類等が違うと思いますが、参考になれば...。 (余計な物も残っていると思います。) 別ブックに下記データを書いて「別ブックデータ.xls」とし保存。 A B C D CH1 CH2 CH3 CH4 ←ここが1行目。(行番号は略) 100 200 300 400 110 150 280 380 80 100 140 300 50 50 50 50 100 200 300 400 200 200 200 200 90 80 70 60 110 110 110 110 120 120 120 120 130 130 130 130 140 140 140 140 150 150 150 150 160 160 160 160 170 170 170 170 180 180 180 180 190 190 190 190 200 200 200 200 上記ブックを開いたまま、別ブックの標準モジュールに下記コードをコピペし、このコードを書いたブックをアクティブにして実行して見て下さい。 Sub momo() Dim Myws As Object, myGf As Object Dim CellY As Long, CYF As Long Dim Flg As Boolean, GrafName As String Dim GrSh As Worksheet GrafName = "サンプルグラフ2" ActiveCell.Select Set Myws = ActiveWorkbook.Sheets("Sheet2") Set GrSh = Workbooks("別ブックデータ.xls").Sheets("Sheet1") CellY = GrSh.Cells(Rows.Count, "A").End(xlUp).Row Application.ScreenUpdating = False On Error Resume Next Set myGf = ActiveSheet.Shapes(GrafName) If Err <> 0 Then Charts.Add Flg = True Else myGf.Select End If On Error GoTo 0 If CellY < 20 Then CYF = 2 Else CYF = 1 + CellY - 20 End If With ActiveChart .ChartType = xlLineMarkers .SetSourceData Source:=GrSh.Range(GrSh.Cells(CYF, 1), GrSh.Cells(CellY, 4)), PlotBy:=xlColumns .Location Where:=xlLocationAsObject, Name:=Myws.Name End With With ActiveChart .HasTitle = False .Axes(xlCategory, xlPrimary).HasTitle = False .Axes(xlValue, xlPrimary).HasTitle = False End With With ActiveChart .Location Where:=xlLocationAsObject, Name:=Myws.Name .HasTitle = True .ChartTitle.Characters.Text = "サンプルソフト" .Axes(xlCategory, xlPrimary).HasTitle = False .Axes(xlValue, xlPrimary).HasTitle = False .HasDataTable = False .SeriesCollection(1).Name = "=" & """" & GrSh.Range("A1").Value & """" .SeriesCollection(2).Name = "=" & """" & GrSh.Range("B1").Value & """" .SeriesCollection(3).Name = "=" & """" & GrSh.Range("C1").Value & """" .SeriesCollection(4).Name = "=" & """" & GrSh.Range("D1").Value & """" End With If Flg = True Then ActiveSheet.Shapes(Mid(ActiveChart.Name, InStr(1, ActiveChart.Name, " ") + 1)).Name = GrafName End If Range("A1").Activate Set Myws = Nothing Set myGf = Nothing Set ActC = Nothing Set GrSh = Nothing Application.ScreenUpdating = True End Sub |