• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel VBAでグラフ作成。A,C列をx値, B,D列をy値にした複数プロット)

Excel VBAで複数プロットのグラフを作成する方法

このQ&Aのポイント
  • ExcelのVBAを使用して、複数プロットのグラフを作成する方法について説明します。
  • まず、各列のデータを指定してグラフを作成し、その後に追加のプロットを行うことで、目的のグラフを作成することが可能です。
  • また、行数と列数に任意の値を代入し、Forループを使用することで、様々な形態のグラフに対応することができます。

質問者が選んだベストアンサー

  • ベストアンサー
  • end-u
  • ベストアンサー率79% (496/625)
回答No.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

phy0
質問者

お礼

ありがとうございます。おかげさまで希望のものができました。

その他の回答 (1)

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

Excelのグラフでは無理がありそうです 単一X軸と 2軸(左右)のY軸なら可能でしょうけど ・・・