質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%

Q&A

1回答

7004閲覧

2点を結ぶ線分を多数グラフにプロットしたい

yuki0629

総合スコア15

0グッド

1クリップ

投稿2019/01/16 03:48

Excelにて,X1,X2,Yの組み合わせのデータがあり,それらを使って,(X1,Y),(X2,Y)の2点を結ぶ線分を散布図の「マーカーと直線」で数十本作りたいと考えています.(下の図は2本引いたものになります)
イメージ説明

手で系列を入力できなくないですが,何か良い方法があればご教授お願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

だいぶ遅レスのためすでに自己解決されているかもしれませんが…。

こんなときはまず「系列を手で入力する」操作を、「マクロの記録」でVBA化してみてください。

例えば「系列3」として「X値:A4:B4、Y値:C4,C4」の系列を追加すると、

Sub Macro1() ' ' Macro1 Macro ' ' ActiveSheet.ChartObjects("グラフ 1").Activate ActiveChart.PlotArea.Select ActiveChart.SeriesCollection.NewSeries ActiveChart.SeriesCollection(3).Name = "=""系列3""" ActiveChart.SeriesCollection(3).XValues = "=Sheet1!$A$4:$B$4" ActiveChart.SeriesCollection(3).Values = "=Sheet1!$C$4, Sheet2!$C$4" End Sub

というVBAコードが生成されます。
これを見ると何をどう設定しているのか、ある程度見えてきますね。

あとは使われているプロパティの意味を調べて、系列の名前と領域を変更しながら必要な数だけループ処理でまわせばできると思います。


今回は質問投稿からだいぶ日も経ってしまっていますので、速攻で使えるサンプルも提供しておきます。

以下はX1、X2、Yの値がそれぞれA列~C列に入力されているデータをもとに、2行目から10行分を系列として追加していくサンプルです。

VBA

1Sub Sample() 2 Dim ws As Worksheet 3 Set ws = Worksheets("Sheet1") 4 5 'グラフ作成 6 Dim cht As Chart 7 Set cht = ws.Shapes.AddChart.Chart '新規グラフ作成 8 cht.ChartType = xlXYScatterLines '散布図(直線とマーカー) 9 10 '系列追加ループ(10回) 11 Dim iCnt As Integer 12 For iCnt = 1 To 10 13 'X座標はA列~B列の範囲を指定 14 Set rngX = Range(ws.Cells(iCnt + 1, "A"), ws.Cells(iCnt + 1, "B")) 15 16 'Y座標は同じセルを2回指定するため、少し特殊な書き方になっています 17 Dim strY As String 18 strY = ws.Name & "!" & ws.Cells(iCnt + 1, "C").Address 'Y座標セルのアドレス文字列を作成(例:"Sheet1!C2") 19 Set rngY = Range(strY & "," & strY) 'Y座標セルを2回指定したセル領域 20 21 '系列の追加 22 With cht.SeriesCollection.NewSeries 23 .Name = "系列" & CStr(iCnt) 24 .XValues = rngX 25 .Values = rngY 26 End With 27 Next 28End Sub

少しわかり難いところもあるのでコメント多めに記載してみました。
参考になれば幸いです。

投稿2019/02/05 04:44

jawa

総合スコア3013

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問