大体でIT

-ちょっと使えるネタを紹介-

大体でIT

Excel VBAを使って、グラフで2軸を設定する方法について、ご紹介します。2軸に設定するには、「.AxisGroup = 2」とすれば、できます。2軸を設定した場合、「系列の種類変更」や「軸ラベルの設定」をした方がグラフが見やすくなりますので、併せて覚えておきましょう。

はじめに

この記事では、グラフで2軸を設定する方法について、ご紹介します。

「2軸」に設定するには、「.AxisGroup = 2」でできます。

2軸設定する場合は、「グラフ種類の変更」や「軸ラベルの追加」をするとグラフが見やすくなります。

グラフ種類の変更は、「.ChartType」を使います。

軸ラベルの設定は、軸を指定して「.AxisTitle.Text」を使って、設定することができます。

VBAでのグラフの操作に慣れていきましょう。

では、グラフで2軸を設定する方法について、解説していきます。

この記事で紹介すること

  • VBAを使ってグラフで2軸を設定する方法

目次から見たい項目へ移動すると便利ですよ。

目次

グラフの系列を2軸に設定する

グラフの系列を「2軸」に設定してみます。

「AxisGroup」を使う

「2軸」に設定するには、「AxisGroup」を使います。

'系列を「2軸」に設定する
ActiveSheet.ChartObjects(1).Chart.SeriesCollection(系列の番号).AxisGroup = 2   '第2軸にする

「SeriesCollection(系列の番号)」で系列を指定して、「.AxisGroup = 2」で「2軸」にするという感じです。

系列を2軸に設定してみる

系列を「2軸」に設定してみます。

「4つ目」の系列を2軸にしたいので、「.SeriesCollection(4)」とします。

Sub TEST1()
    
    '「4つ目」の系列
    With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(4)
        .AxisGroup = 2  '第2軸にする
    End With
        
End Sub

グラフを用意しておきます。

グラフを用意

グラフを用意

では、VBAコードを実行してみます。

系列を2軸に設定

系列を2軸に設定

系列を2軸に設定できました。

系列を2軸にするだけなら、簡単にできます。

ただ、1軸と2軸のグラフが被っていて、見づらいので、系列の種類も変えてみます。

系列の種類を変更する

系列の種類を変更してみます。

系列の種類を変更するには、「.ChartType」を使います。

Sub TEST2()
    
    '「4つ目」の系列
    With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(4)
        .ChartType = xlLine '折れ線に変更する
    End With
        
End Sub

2軸を設定したグラフを用意しておきます。

2軸を設定したグラフ

2軸を設定したグラフ

では、VBAコードを実行してみます。

系列を「折れ線」に変更

系列を「折れ線」に変更

系列を「折れ線」に変更できました。

見やすくなりましたね。

「グラフ種類の変更」や「グラフ種類の一覧」について、詳細はこちらでまとめています。

元データから2軸設定までをやってみる

元データからグラフを作成して、2軸設定と系列の種類変更までをやってみます。

元データを作成

元データを作成しておきます。

元データを作成

元データを作成

元データを作成しました。

棒グラフを作成する

次は、棒グラフを作成します。

グラフの作成は、「.Shapes.AddChart2」でできます。

Sub TEST3()
    
    Range("A1").Select '元データを選択
    ActiveSheet.Shapes.AddChart2.Select 'グラフを作成
    ActiveChart.ChartType = xlColumnClustered '集合縦棒
    
End Sub

では、VBAコードを実行してみます。

棒グラフを作成

棒グラフを作成

棒グラフを作成できました。

列方向のデータを系列にする

「列方向のデータ」を系列にしてみます。

「列方向のデータ」を系列にするには、「.PlotBy = xlColumns」とします。

Sub TEST4()
    
    '元データの「列方向」のデータを「系列」にする
    ActiveSheet.ChartObjects(1).Chart.PlotBy = xlColumns
    
End Sub

では、VBAコードを実行してみます。

「列方向」のデータを系列にする

「列方向」のデータを系列にする

「列方向」のデータを系列にできました。

「合計」の系列を「2軸」にする

「合計」の系列を「2軸」にしてみます。

先ほど紹介した内容です。

4つ目の系列なので、「.SeriesCollection(4)」を使います。

2軸に設定するので、「.AxisGroup = 2」です。

Sub TEST5()
    
    '「4つ目」の系列
    With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(4)
        .AxisGroup = 2  '第2軸にする
    End With
        
End Sub

では、実行してみます。

「合計」の系列を「2軸」に設定

「合計」の系列を「2軸」に設定

「合計」の系列を「2軸」に設定できました。

「合計」の系列を「折れ線」に変更する

グラフが被っていて見づらいので、「合計」の系列を「折れ線」に変更します。

「.ChartType = xlLine」で折れ線に変更できます。

Sub TEST6()
    
    '「4つ目」の系列
    With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(4)
        .ChartType = xlLine '折れ線に変更する
    End With
        
End Sub

では、VBAコードを実行してみます。

「合計」の系列を「折れ線」に変更

「合計」の系列を「折れ線」に変更

「合計」の系列を「折れ線」に変更できました。

ラベルを設定する

軸ラベルを設定して、どの数値軸を確認すればいいかをわかりやすくします。

「縦軸の第1軸」は「.Axes(xlValue, 1)」のオブジェクトを使います。

「縦軸の第2軸」は「.Axes(xlValue, 2)」となります。

Sub TEST7()
    
    '縦軸の第1軸
    With ActiveSheet.ChartObjects(1).Chart.Axes(xlValue, 1)
        .HasTitle = True '軸ラベルを表示
        .AxisTitle.Text = "売上"
    End With
    
    '縦軸の第2軸
    With ActiveSheet.ChartObjects(1).Chart.Axes(xlValue, 2)
        .HasTitle = True '軸ラベルを表示
        .AxisTitle.Text = "合計"
    End With
    
End Sub

では、実行してみます。

ラベルを設定

ラベルを設定

ラベルを設定できました。

グラフが見やすくなりました。

軸ラベルの設定について、詳細はこちらでまとめています。

【完成版】VBAコードをまとめる

今までのVBAコードをまとめると、次のようになります。

Sub TEST8()
    
    Range("A1").Select '元データを選択
    ActiveSheet.Shapes.AddChart2.Select 'グラフを作成
    
    'アクティブシートの1つ目のグラフのチャート
    With ActiveChart
        
        .ChartType = xlColumnClustered '集合縦棒
        .PlotBy = xlColumns '「列方向」のデータを「系列」にする
        
        '「4つ目」の系列
        With .SeriesCollection(4)
            .AxisGroup = 2  '第2軸にする
            .ChartType = xlLine '折れ線に変更する
        End With
     
        '縦軸の第1軸
        With .Axes(xlValue, 1)
            .HasTitle = True '軸ラベルを表示
            .AxisTitle.Text = "売上"
        End With
        
        '縦軸の第2軸
        With .Axes(xlValue, 2)
            .HasTitle = True '軸ラベルを表示
            .AxisTitle.Text = "合計"
        End With
        
    End With
    
End Sub

実行すると先ほどと同じグラフが作成されます。

元データから「2軸を設定」したグラフを作成

元データから「2軸を設定」したグラフを作成

元データから「2軸を設定」したグラフを作成できました。

おわりに

この記事では、グラフで2軸を設定する方法について、ご紹介しました。

「2軸」に設定するには、「.AxisGroup = 2」でできます。

2軸設定する場合は、「グラフ種類の変更」や「軸ラベルの追加」をするとグラフが見やすくなります。

グラフ種類の変更は、「.ChartType」を使います。

軸ラベルの設定は、軸を指定して「.AxisTitle.Text」を使って、設定することができます。

VBAでのグラフの操作に慣れていきましょう。

参考になればと思います。最後までご覧くださいまして、ありがとうございました。

関連する記事から探す

カテゴリから探す

カテゴリから見たい項目を探すと便利ですよ。

サイト内を検索する

↓キーワードを入力する

アーカイブから探す