Excel

【Excel】VBAマクロで散布図の作成(複数データも:範囲指定、x軸やy軸:一括繰り返し)する方法

当サイトでは記事内に広告を含みます

この記事ではVBAマクロで散布図の作成(複数データも:範囲指定、x軸やy軸:一括繰り返し)する方法について解説します。

初心者にもわかりやすくするために、変数名や関数名を日本語のローマ字風にしています。実用時にはご自身の好みに合わせて変更してください。

それでは、具体的な手順を見ていきましょう!

VBAマクロでの散布図の作成方法(x軸をB列、y軸をC列)

このセクションでは、VBAマクロで散布図を作成し、シートの最終列の次の列の先頭行に配置する方法を解説します。

ここでは、x軸をB列の2行目から最終行まで、y軸をC列の2行目から最終行までとしてみます。

VBE画面で以下のコードをコピー&ペーストしてください。


Sub SanbuzuTsukuru()
    Dim xBunpu As Range, yBunpu As Range
    Dim chizu As Chart
    Dim saigoNoRetu As Integer

    ' X軸とY軸の範囲を設定
    Set xBunpu = ThisWorkbook.Sheets("Sheet1").Range("B2:B" & ThisWorkbook.Sheets("Sheet1").Cells(Rows.Count, "B").End(xlUp).Row)
    Set yBunpu = ThisWorkbook.Sheets("Sheet1").Range("C2:C" & ThisWorkbook.Sheets("Sheet1").Cells(Rows.Count, "C").End(xlUp).Row)
    
    ' シートの最終列を取得
    saigoNoRetu = ThisWorkbook.Sheets("Sheet1").Cells(1, Columns.Count).End(xlToLeft).Column + 1

    ' 散布図オブジェクトを作成し、設定
    Set chizu = ThisWorkbook.Sheets("Sheet1").Shapes.AddChart2(240, xlXYScatter).Chart

    With chizu
        ' X軸とY軸のデータを設定
        .SeriesCollection.NewSeries
        .SeriesCollection(1).XValues = xBunpu
        .SeriesCollection(1).Values = yBunpu

        ' 散布図の位置とサイズを設定
        .Parent.Left = ThisWorkbook.Sheets("Sheet1").Cells(1, saigoNoRetu).Left
        .Parent.Top = ThisWorkbook.Sheets("Sheet1").Cells(1, saigoNoRetu).Top
        .Parent.Width = 300
        .Parent.Height = 200
    End With
End Sub

Alt+F8を押し、「SanbuzuTsukuru」関数を実行します。

 

VBAマクロでの散布図の複数データで作成方法(4列おきに一括処理)

ここでは、特定の列データをx軸とy軸に使い、それに応じて次の列に散布図を配置する方法について解説します。

例えば、B列とC列を使ってD列に散布図を配置し、その後F列とG列のデータを使ってH列・・と最終列まで4列お気に散布図を配置します。

VBE画面で以下のコードをコピー&ペーストしてください。

Sub RenzokuSanbuzuTsukuru()
    Dim xBunpu As Range, yBunpu As Range
    Dim chizu As Chart
    Dim i As Integer
    Dim saigoNoRetu As Integer

    ' シートの最終列を取得
    saigoNoRetu = ThisWorkbook.Sheets("Sheet1").Cells(1, Columns.Count).End(xlToLeft).Column

    For i = 2 To saigoNoRetu Step 4
        ' X軸とY軸の範囲を設定
        Set xBunpu = ThisWorkbook.Sheets("Sheet1").Range(ThisWorkbook.Sheets("Sheet1").Cells(2, i), ThisWorkbook.Sheets("Sheet1").Cells(Rows.Count, i).End(xlUp))
        Set yBunpu = ThisWorkbook.Sheets("Sheet1").Range(ThisWorkbook.Sheets("Sheet1").Cells(2, i + 1), ThisWorkbook.Sheets("Sheet1").Cells(Rows.Count, i + 1).End(xlUp))

        ' 散布図オブジェクトを作成し、設定
        Set chizu = ThisWorkbook.Sheets("Sheet1").Shapes.AddChart2(240, xlXYScatter).Chart

        With chizu
            ' X軸とY軸のデータを設定
            .SeriesCollection.NewSeries
            .SeriesCollection(1).XValues = xBunpu
            .SeriesCollection(1).Values = yBunpu

            ' 散布図の位置とサイズを設定
            .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を押し、「RenzokuSanbuzuTsukuru」関数を実行します。

 

まとめ VBAマクロで散布図の作成(範囲指定、x軸やy軸:一括繰り返し)する方法

この記事では、VBAマクロを用いてExcelで散布図を作成する方法を解説しました。これらの手法を活用して、より効率的なデータ分析を行いましょう!