大体でIT
大体でIT
2021/6/8
Excel VBAで、折れ線グラフを作成する方法について、ご紹介します。折れ線グラフを作成するには、「Shapes.AddChart2」を使います。グラフを挿入したら「xlLine」で折れ線に変更すると折れ線グラフの完成です。折れ線グラフの書式設定も含めて解説していきます。
この記事では、折れ線グラフを作成する方法について、ご紹介します。
元データを選択
グラフを挿入
グラフの種類を折れ線にする
タイトルと凡例
軸ラベル
線の色
マーカー
データラベル
グラフの書式設定は、VBAコードが大量にあるので、最初から設定しようとすると大変です。
「ベース」となるグラフを作成しておいて、そのグラフをコピーして利用すると、効率的にグラフの操作ができます。
グラフのコピーについて、詳細はこちらでまとめています。
では、折れ線グラフを作成する方法について、解説していきます。
折れ線グラフを作成するVBAコードについて、まとめています。
VBAコードだけ確認したい場合に、ご活用ください。
'折れ線グラフを作成
Range("A1").Select '元データを選択
ActiveSheet.Shapes.AddChart2.Select 'グラフを挿入
ActiveChart.ChartType = xlLine '「折れ線」
'グラフの種類を変更
ActiveSheet.ChartObjects(1).Chart.ChartType = xlLineMarkers '「積み上げ折れ線」
'折れ線グラフの種類
ActiveChart.ChartType = xlLine '折れ線
ActiveChart.ChartType = xlLineStacked '積み上げ折れ線
ActiveChart.ChartType = xlLineStacked100 '100 積み上げ折れ線
ActiveChart.ChartType = xlLineMarkers 'マーカー付き折れ線
ActiveChart.ChartType = xlLineMarkersStacked 'マーカー付き積み上げ折れ線
ActiveChart.ChartType = xlLineMarkersStacked100 'マーカー付き 100% 積み上げ折れ線
ActiveChart.ChartType = xl3DLine '3-D 折れ線
'参照範囲を変更
ActiveSheet.ChartObjects(1).Chart.SetSourceData Range("A1").CurrentRegion
使うのは、「Shapes.AddChart2」です。
元データを選択
グラフを挿入
グラフの種類を設定する
Sub TEST1()
Range("A1").Select '元データを選択
ActiveSheet.Shapes.AddChart2.Select 'グラフを挿入
ActiveChart.ChartType = xlLine '「折れ線」
End Sub
元データ
折れ線グラフを作成できた
グラフを作成した後に、グラフの種類を変更したい場合に使います。
Sub TEST2()
'「マーカー付き折れ線」に変更
ActiveSheet.ChartObjects(1).Chart.ChartType = xlLineMarkers
End Sub
「マーカー付き折れ線グラフ」に変更できた
折れ線グラフの種類の一覧
折れ線(xlLine)
積み上げ折れ線(xlLineStacked)
100% 積み上げ折れ線(xlLineStacked100)
マーカー付き折れ線(xlLineMarkers)
マーカー付き積み上げ折れ線(xlLineMarkersStacked)
マーカー付き 100% 積み上げ折れ線(xlLineMarkersStacked100)
3-D 折れ線(xl3DLine)
VBAコードの例
ActiveChart.ChartType = xlLine '折れ線
ActiveChart.ChartType = xlLineStacked '積み上げ折れ線
ActiveChart.ChartType = xlLineStacked100 '100 積み上げ折れ線
ActiveChart.ChartType = xlLineMarkers 'マーカー付き折れ線
ActiveChart.ChartType = xlLineMarkersStacked 'マーカー付き積み上げ折れ線
ActiveChart.ChartType = xlLineMarkersStacked100 'マーカー付き 100% 積み上げ折れ線
ActiveChart.ChartType = xl3DLine '3-D 折れ線
設定したいグラフの種類に応じて、VBAコードを選択しましょう。
その他のグラフ種類の一覧
他のグラフの種類については、こちらでまとめています。
使うVBAコードは、「SetSourceData」です。
元データのセル範囲をすべて設定するには、「.CurrentRegion」を使うと便利です。
Sub TEST3()
'参照範囲を設定
ActiveSheet.ChartObjects(1).Chart.SetSourceData Range("A1").CurrentRegion
End Sub
元データにデータを追加
では、VBAコードを実行して、参照範囲を変更してみます。
参照範囲を変更できた
「SetSourceData」の詳細な使用方法
「SetSourceData」を使えば、「系列を追加」することもできるので便利です。
離れたセル範囲を参照したい場合は、「Union」が使えます。
「SetSourceData」の使い方について、詳細はこちらでまとめています。
VBAで折れ線グラフの「位置」と「サイズ」を設定してみます。
使うVBAコードは、「.Left」と「.Top」です。
Sub TEST4()
With ActiveSheet.ChartObjects(1)
.Left = Range("B15").Left '左の位置
.Top = Range("B15").Top '上の位置
End With
End Sub
グラフを用意
「左」と「上」の位置を設定できた
「.Left」や「.Top」を応用して使う
位置を「.Left」や「.Top」で取得できれば、別シートの「同じ位置」にグラフの「コピー」や「移動」ができます。
「.Left」や「.Top」の使い方について、詳細はこちらでまとめています。
使うVBAコードは、「.Width」と「.Height」です。
Sub TEST5()
With ActiveSheet.ChartObjects(1)
.Width = Range("B15:F23").Width '幅
.Height = Range("B15:F23").Height '高さ
End With
End Sub
グラフを用意
「幅」と「高さ」を設定できた
VBAで折れ線グラフの「タイトル」や「軸」、「凡例」の設定をしてみます。
タイトルを表示
タイトルを表示するには、「.HasTitle」を使います。
テキストを設定するには、「.ChartTitle.Text」です。
Sub TEST6()
With ActiveSheet.ChartObjects(1).Chart
.HasTitle = True 'タイトルを表示
.ChartTitle.Text = "売上一覧"
End With
End Sub
タイトルを非表示
Sub TEST7()
With ActiveSheet.ChartObjects(1).Chart
.HasTitle = False 'タイトルを非表示
End With
End Sub
タイトルの書式設定
タイトルの設定には、「位置」や「テキストの書式」、「背景色」、「枠線」の設定があります。
タイトルの設定について、詳細はこちらでまとめています。
凡例を表示
「凡例」を表示するには、「.HasLegend」を使います。
Sub TEST8()
With ActiveSheet.ChartObjects(1).Chart
.HasLegend = True '凡例を表示
.Legend.IncludeInLayout = True 'グラフと重ねない
.Legend.Position = xlBottom '下に表示
End With
End Sub
凡例を非表示
Sub TEST9()
With ActiveSheet.ChartObjects(1).Chart
.HasLegend = False '凡例を非表示
End With
End Sub
凡例の書式設定
凡例の設定には、「位置」や、「背景色」、「枠線」の設定があります。
凡例の設定について、詳細はこちらでまとめています。
「縦軸」ラベルを表示
縦軸ラベルを表示するには、「.Axes(xlValue, 1).HasTitle」を使います。
縦軸の第1軸を「.Axes(xlValue, 1)」で指定しています。
Sub TEST10()
'縦軸の第1軸
With ActiveSheet.ChartObjects(1).Chart.Axes(xlValue, 1)
.HasTitle = True '軸ラベルを表示
.AxisTitle.Text = "売上"
End With
End Sub
「縦軸」ラベルを非表示
縦軸ラベルを非表示にするには、「.HasTitle = False」とすることでできます。
Sub TEST11()
'縦軸の第1軸
With ActiveSheet.ChartObjects(1).Chart.Axes(xlValue, 1)
.HasTitle = False '軸ラベルを非表示
End With
End Sub
「横軸」ラベルを表示
横軸ラベルを表示するには、「.Axes(xlCategory, 1).HasTitle」を使います。
横軸の第1軸を指定するには、「.Axes(xlCategory, 1)」で、「xlCategory」とすると、「横軸」になります。
Sub TEST12()
'横軸の第1軸
With ActiveSheet.ChartObjects(1).Chart.Axes(xlCategory, 1)
.HasTitle = True '軸ラベルを表示
.AxisTitle.Text = "日付"
End With
End Sub
「横軸」ラベルを非表示
横軸ラベルを非表示にするには、「.HasTitle = False」とすれば、できます。
Sub TEST13()
'横軸の第1軸
With ActiveSheet.ChartObjects(1).Chart.Axes(xlCategory, 1)
.HasTitle = False '軸ラベルを表示
End With
End Sub
軸ラベルの書式設定
軸ラベルの書式設定には、「テキストの入力」や「文字の書式」、「背景色の書式」、「枠線の書式」など、設定できる項目があります。
軸ラベルは、「第1軸のラベル」だけでなく「第2軸のラベル」も設定できます。
軸ラベルの設定について、詳細はこちらでまとめています。
横軸の第1軸
縦軸の第1軸
横軸の第2軸
縦軸の第2軸
グラフの軸の設定で、頻度が高いのが、「スケール」の設定です。
軸のスケール
軸の文字の書式
軸の表示形式
軸の背景の書式
軸の反転
線の色
線の色を設定するには、「.SeriesCollection(1).Format.Line」を使います。
1つ目の系列は、「.SeriesCollection(1)」というように指定することができます。
Sub TEST14()
'「1つ目」の系列の「線」
With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).Format.Line
.Visible = msoTrue '塗りつぶしあり
.ForeColor.RGB = RGB(255, 255, 0) '黄色
End With
End Sub
線を非表示
線の塗りつぶしなしは、「.Visible = msoFalse」でできます。
Sub TEST15()
'「1つ目」の系列の「線」
With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).Format.Line
.Visible = msoFalse '塗りつぶしなし
End With
End Sub
線の色、太さ、種類の設定
他にも、系列の「線の色」や、「線の太さ」、「線の種類」、「ポイント単位での設定」などが設定できます。
系列の線の設定について、詳細はこちらでまとめています。
マーカーを表示
マーカーを表示にするには、「.MarkerStyle = 1」というように、マーカーの種類を設定します。
Sub TEST16()
'「1つ目」の系列
With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1)
.MarkerStyle = 1 'マーカーを設定(種類:1~9)
End With
End Sub
マーカーを非表示
マーカーを非表示にするには、「.MarkerStyle = xlNone」とするとできます。
Sub TEST17()
'「1つ目」の系列
With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1)
.MarkerStyle = xlNone 'マーカー非表示
End With
End Sub
マーカーのサイズ
マーカーのサイズを設定するには、「.MarkerSize」を使います。
Sub TEST18()
'「1つ目」の系列
With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1)
.MarkerSize = 10 'マーカーサイズ
End With
End Sub
マーカーの背景色と枠線色
マーカーの背景色は、「.MarkerBackgroundColor」で、マーカーの枠線色は、「.MarkerForegroundColor」で設定できます。
背景色は、マーカーの中央の部分で、マーカーの枠線色は、外側の部分です。
Sub TEST19()
'「1つ目」の系列
With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1)
.MarkerBackgroundColor = RGB(255, 255, 0) 'マーカー背景色
.MarkerForegroundColor = RGB(255, 255, 0) 'マーカー枠線色
End With
End Sub
マーカーの「背景色」と「枠線色」を設定できました。
マーカーの詳細な設定方法
マーカーの設定について、詳細はこちらでまとめています。
データラベルの表示
データラベルを表示するには、「.HasDataLabels = True」とします。
Sub TEST20()
With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1)
.HasDataLabels = True 'データラベルを表示
.DataLabels.Position = xlLabelPositionRight '右
End With
End Sub
データラベルの非表示
データラベルの非表示にするには、「.HasDataLabels = False」とすれば、できます。
Sub TEST21()
With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1)
.HasDataLabels = False 'データラベルを非表示
End With
End Sub
データラベルの書式設定
データラベルの「位置」の設定や、「ポイント単位での設定」、「文字サイズ」、「文字色」なども設定できます。
データラベルの設定について、詳細はこちらでまとめています。
この記事では、折れ線グラフを作成する方法について、ご紹介しました。
元データを選択
グラフを挿入
グラフの種類を折れ線にする
タイトルと凡例
軸ラベル
線の色
マーカー
データラベル
グラフの書式設定は、VBAコードが大量にあるので、最初から設定しようとすると大変です。
「ベース」となるグラフを作成しておいて、そのグラフをコピーして利用すると、効率的にグラフの操作ができます。
グラフのコピーについて、詳細はこちらでまとめています。
参考になればと思います。最後までご覧くださいまして、ありがとうございました。