この記事ではVBAマクロで折れ線グラフの作成(範囲指定、x軸やy軸)する方法について解説していきます
なお、下記の解説では完全な初心者でもわかりやすいようにあえて変数名を少々変わった名称にしております。そのため、ご活用の際には、ここを適切な英語表記に変更してご活用ください。
それでは詳しく見ていきましょう!
VBAマクロでの折れ線グラフの作成方法(範囲指定としてx軸をB列の2行目から最終行まで、y軸をC列の2行目から最終行までにしてみる)
ここでは、VBAマクロで作成した折れ線グラフを、同じシートの最終列の次の列の先頭行に貼り付ける方法について解説します。
具体的には、範囲指定としてx軸をB列の2行目から最終行まで、y軸をC列の2行目から最終行までにします。その上で、グラフを同じシート上の最終列の次に貼付してみます!
Alt + F11にてVBE画面を開いて、以下のコードをコピペしましょう。
Sub CreateAndPlaceChart()
Dim xHani As Range, yHani As Range
Dim gurafu As Chart
Dim saishuuRetu As Integer
' X軸とY軸の範囲を設定
Set xHani = ThisWorkbook.Sheets("Sheet1").Range("B2:B" & ThisWorkbook.Sheets("Sheet1").Cells(Rows.Count, "B").End(xlUp).Row)
Set yHani = ThisWorkbook.Sheets("Sheet1").Range("C2:C" & ThisWorkbook.Sheets("Sheet1").Cells(Rows.Count, "C").End(xlUp).Row)
' シートの最終列を取得
saishuuRetu = ThisWorkbook.Sheets("Sheet1").Cells(1, Columns.Count).End(xlToLeft).Column + 1
' グラフオブジェクトを作成し、設定
Set gurafu = ThisWorkbook.Sheets("Sheet1").Shapes.AddChart2(240, xlXYScatterLines).Chart
With gurafu
' X軸とY軸のデータを設定
.SeriesCollection.NewSeries
.SeriesCollection(1).XValues = xHani
.SeriesCollection(1).Values = yHani
' グラフの位置とサイズを設定
.Parent.Left = ThisWorkbook.Sheets("Sheet1").Cells(1, saishuuRetu).Left
.Parent.Top = ThisWorkbook.Sheets("Sheet1").Cells(1, saishuuRetu).Top
.Parent.Width = 300
.Parent.Height = 200
End With
End Sub
コードのAlt+F8を押し、マクロ選択画面でCreateAndPlaceChart関数を実行します。
このコードでは、B列とC列のデータを使用して折れ線グラフを作成し、シートの最終列の次の列の先頭行にグラフを配置します。
`saishuuRetu`はシートの最終列を示します。
VBAマクロでの折れ線グラフの複数の作成方法(範囲指定として上のデータを基準とし、4列おきに一括で処理する)
次に、VBAマクロを使用して、特定の列データをX軸とY軸に使い、それに応じて次の列にグラフを配置する方法について解説します。
この方法では、B列とC列を使ったグラフをD列に配置し、次にF列とG列を使ったグラフをH列に配置する(つまりx軸やy軸を4列間隔で折れ線グラフ作成)といったように、シート上でこれを繰り返します。
Alt + F11にてVBE画面を開いて、以下のコードをコピペしましょう。
Sub CreateAndPlaceChartsInSequence()
Dim xHani As Range, yHani As Range
Dim gurafu As Chart
Dim i As Integer
Dim lastColumn As Integer
' シートの最終列を取得
lastColumn = ThisWorkbook.Sheets("Sheet1").Cells(1, Columns.Count).End(xlToLeft).Column
For i = 2 To lastColumn Step 4 ' B列から開始し、4列おきにグラフを作成
' X軸とY軸の範囲を設定
Set xHani = ThisWorkbook.Sheets("Sheet1").Range(ThisWorkbook.Sheets("Sheet1").Cells(2, i), ThisWorkbook.Sheets("Sheet1").Cells(Rows.Count, i).End(xlUp))
Set yHani = ThisWorkbook.Sheets("Sheet1").Range(ThisWorkbook.Sheets("Sheet1").Cells(2, i + 1), ThisWorkbook.Sheets("Sheet1").Cells(Rows.Count, i + 1).End(xlUp))
' グラフオブジェクトを作成し、設定
Set gurafu = ThisWorkbook.Sheets("Sheet1").Shapes.AddChart2(240, xlXYScatterLines).Chart
With gurafu
' X軸とY軸のデータを設定
.SeriesCollection.NewSeries
.SeriesCollection(1).XValues = xHani
.SeriesCollection(1).Values = yHani
' グラフの位置とサイズを設定
.Parent.Left = ThisWorkbook.Sheets("Sheet1").Cells(1, i + 2).Left
.Parent.Top = ThisWorkbook.Sheets("Sheet1").Cells(1, i + 2).Top
.Parent.Width = 300
.Parent.Height = 200
End With
Next i
End Sub
コードのAlt+F8を押し、マクロ選択画面でCreateAndPlaceChartsInSequence関数を実行します。
このコードでは、指定された列をX軸とY軸に使用し、それに応じて次の列にグラフを配置する処理を繰り返し行います。
まとめ VBAマクロで折れ線グラフの作成(x軸やy軸指定:複数一括繰り返し)する方法
この記事ではVBAマクロで折れ線グラフの作成(範囲指定、x軸やy軸:複数一括繰り返し)する方法について確認しました。
マクロをマスターしてさらに快適な生活を送っていきましょう!!(^^)/