- ベストアンサー
Excel VBAで複数プロットのグラフを作成する方法
- ExcelのVBAを使用して、複数プロットのグラフを作成する方法について説明します。
- まず、各列のデータを指定してグラフを作成し、その後に追加のプロットを行うことで、目的のグラフを作成することが可能です。
- また、行数と列数に任意の値を代入し、Forループを使用することで、様々な形態のグラフに対応することができます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Dim chartObj As ChartObject Dim r As Range Dim i As Long Set chartObj = ActiveSheet.ChartObjects.Add(170, 170, 280, 170) Set r = Worksheets(1).Range("A1:F10") With chartObj.Chart .ChartType = xlXYScatterLines .HasLegend = False For i = 1 To 5 Step 2 With .SeriesCollection.NewSeries .XValues = r.Columns(i) .Values = r.Columns(i + 1) End With Next End With Set r = Nothing Set chartObj = Nothing ...こんな感じ。 普通に手作業で作成するものをマクロ記録すればヒントになるでしょう。 後から系列を追加すればいいわけです。 >本番のグラフは行数と列数はいろいろな場合があるので... ...に対応させる一例としては以下。 Const MN = 1 'データ開始行 Const MX = 10 'データ個数 Dim chartObj As ChartObject Dim x, y Dim z As Long Dim i As Long x = VBA.Array(1, 3, 5) 'x値の列 y = VBA.Array(2, 4, 6) 'y値の列 Set chartObj = ActiveSheet.ChartObjects.Add(170, 170, 280, 170) With chartObj.Chart .ChartType = xlXYScatterLines .HasLegend = False For i = 0 To UBound(x) With .SeriesCollection.NewSeries .XValues = Cells(MN, x(i)).Resize(MX) .Values = Cells(MN, y(i)).Resize(MX) End With Next End With Set chartObj = Nothing
その他の回答 (1)
- redfox63
- ベストアンサー率71% (1325/1856)
Excelのグラフでは無理がありそうです 単一X軸と 2軸(左右)のY軸なら可能でしょうけど ・・・
お礼
ありがとうございます。おかげさまで希望のものができました。