大体でIT

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

大体でIT

Excel VBAで、グラフの系列で「線の太さ」や「色」、「マーカー」の書式設定をする方法について、ご紹介します。系列の書式設定を、最初からVBAで自動化すると大変です。「ベース」となるグラフを作っておいて、今回紹介するVBAコードで、系列の一部を書式設定すると効率的です。

はじめに

この記事では、VBAで系列の「色」や「太さ」などの書式設定をする方法について、ご紹介します。

「ForeColor.RGB」や「Weight」などを使って、系列の色や太さが設定できます。

系列の書式設定は、たくさんのVBAコードがあるので、覚えるのは無理ですね。

最初に「ベース」となるグラフを作って利用する方が効率的です。

一部の書式を変更したい場合に、今回紹介するVBAコードを使って、書式を設定していきましょう。

では、グラフの系列の色や太さを設定する方法について、解説していきます。

この記事で紹介すること

  • グラフの系列を書式設定する方法

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

目次

VBAコードまとめ

系列の色や太さを設定する方法について、VBAコードをまとめています。

VBAコードだけ確認したい場合に、ご活用ください。

'■折れ線グラフと散布図

'【系列の線】

'線の色
ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).Format.Line.Visible = msoTrue '塗りつぶしあり
ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).Format.Line.ForeColor.RGB = RGB(0, 255, 0) '緑色
ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).Format.Line.Transparency = 0.5 '透過率
ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).Format.Line.Visible = msoFalse '塗りつぶしなし
'線の太さ
ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).Format.Line.Weight = 5 '太さ(マーカーの枠線の太さも変わる)
'線の種類
ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).Format.Line.DashStyle = msoLineSysDot '点線(丸)
'線の種類の一覧
With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).Format.Line
    .DashStyle = msoLineSolid '実線
    .DashStyle = msoLineSysDot '点線(丸)
    .DashStyle = msoLineSysDash '点線(角)
    .DashStyle = msoLineDash '破線
    .DashStyle = msoLineDashDot '一点鎖線
    .DashStyle = msoLineLongDash '長破線
    .DashStyle = msoLineLongDashDot '長鎖線
    .DashStyle = msoLineLongDashDotDot '長二点鎖線
End With
'「ポイント単位」の線の色
ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).Points(4).Format.Line.ForeColor.RGB = RGB(0, 255, 0) '緑

'【マーカー】

'マーカーの設定
ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).MarkerStyle = 1 '設定(種類:1~9)
ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).MarkerStyle = xlNone '非表示
'マーカーのサイズ
ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).MarkerSize = 8
'マーカーの背景色
ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).MarkerBackgroundColor = RGB(255, 0, 0) '赤
'マーカーの枠線色
ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).MarkerForegroundColor = RGB(255, 0, 0) '赤
'「ポイント単位」のマーカーの設定
ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).Points(4).MarkerBackgroundColor = RGB(255, 0, 0) '赤

'■棒グラフ

'系列の色
ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).Format.Fill.ForeColor.RGB = RGB(0, 255, 0) '緑
'ポイント単位の系列の色
ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).Points(2).Format.Fill.ForeColor.RGB = RGB(0, 255, 0) '緑

では、解説していきます。

折れ線や散布図で系列の「線」を書式設定

VBAで、折れ線や散布図で系列の「線」を書式設定してみます。

系列のイメージについては、こちらでまとめています。

線の色

VBAで、「線の色」を設定してみます。

Sub TEST1()
    
    '1つ目の系列の「線」
    With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).Format.Line
        .Visible = msoTrue '塗りつぶしあり
        .ForeColor.RGB = RGB(0, 255, 0) '緑色
        .Transparency = 0.5 '透過率
    End With
    
End Sub

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

元のグラフ

グラフを用意

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

線の「色」を設定できます。

線の「色」を設定

VBAで線の「色」を設定できました

VBAで、線の「色」を設定できました。

線を非表示

次は、「線」を非表示にしてみます。

VBAコードは、こんな感じになります。

Sub TEST2()
    
    '1つ目の系列の「線」
    With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).Format.Line
        .Visible = msoFalse '塗りつぶしなし
    End With
    
End Sub

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

元のグラフ

グラフを用意

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

線を「塗りつぶしなし」にできます。

線を「塗りつぶしなし」

VBAで線を「塗りつぶしなし」にできました

VBAで、線を「塗りつぶしなし」にできました。

線の太さ

次は、「線の太さ」を設定します。

「Weight」を使います。

Sub TEST3()
    
    '1つ目の系列の「線」
    With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).Format.Line
        .Weight = 5 '太さ(マーカーの枠線の太さも変わる)
    End With
    
End Sub

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

元のグラフ

元のグラフを用意

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

VBAで線の「太さ」を設定できます。

線の「太さ」を設定

VBAで線の「太さ」を設定できました

VBAで線の「太さ」を設定できました。

線の種類

次は、「線の種類」を設定します。

線の「種類」を設定

Sub TEST4()
    
    '1つ目の系列の「線」
    With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).Format.Line
        .DashStyle = msoLineSysDot '点線(丸)
    End With
    
End Sub

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

グラフを用意

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

VBAで線の「種類」を設定できました

VBAで線の「種類」を設定できました。

線の「種類の一覧」

線の「種類の一覧」のVBAコードは、次のようになります。

  • 実線(msoLineSolid)
  • 点線(丸)(msoLineSysDot)
  • 点線(角)(msoLineSysDash)
  • 破線(msoLineDash)
  • 一点鎖線(msoLineDashDot)
  • 長破線(msoLineLongDash)
  • 長鎖線(msoLineLongDashDot)
  • 長二点鎖線(msoLineLongDashDotDot)

線の「種類の一覧」です。

線の「種類の一覧」です

VBAコードの列を記載すると、次のようになります。

'1つ目の系列の「線」
With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).Format.Line
    .DashStyle = msoLineSolid '実線
    .DashStyle = msoLineSysDot '点線(丸)
    .DashStyle = msoLineSysDash '点線(角)
    .DashStyle = msoLineDash '破線
    .DashStyle = msoLineDashDot '一点鎖線
    .DashStyle = msoLineLongDash '長破線
    .DashStyle = msoLineLongDashDot '長鎖線
    .DashStyle = msoLineLongDashDotDot '長二点鎖線
End With

設定したい種類に合わせて、VBAコードを選択しましょう。

ポイント単位の設定

次は、ポイント単位で、系列を設定してみます。

ポイント単位で設定する場合は、「Points」を使います。

Sub TEST5()
    
    '1つ目の系列の「4つ目のポイント」の線
    With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).Points(4).Format.Line
        .ForeColor.RGB = RGB(0, 255, 0) '緑色
    End With
    
End Sub

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

元のグラフ

グラフを用意

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

「ポイント単位」で設定

「ポイント単位」で設定できました

「ポイント単位」で設定できました。

折れ線や散布図で「マーカー」を書式設定

折れ線や散布図で「マーカー」を書式設定してみます。

系列のイメージについては、こちらでまとめています。

マーカーの表示と非表示

マーカーの表示と非表示にする方法です。

「マーカー」を表示

「マーカー」を表示にするには、「.MarkerStyle」を使います。

Sub TEST6()
    
    '1つ目の系列
    With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1)
        .MarkerStyle = 1 'マーカーを表示(種類:1~9)
    End With
    
End Sub

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

グラフを用意

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

VBAで「マーカー」を表示できました

VBAで「マーカー」を表示できました。

「マーカー」を非表示

次は、「マーカー」を非表示にしてみます。

マーカーを非表示にするには、「.MarkerStyle = xlNone」を使います。

Sub TEST7()
    
    '1つ目の系列
    With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1)
        .MarkerStyle = xlNone 'マーカーを非表示
    End With
    
End Sub

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

VBAで「マーカー」を非表示にできました

VBAで「マーカー」を非表示にできました。

マーカーの種類

マーカーの種類は、こんな感じで「1~9」までを指定できます。

マーカーの種類

マーカーの種類の一覧です

使いたい種類に応じて、「1~9」の数値を指定しましょう。

マーカーのサイズ

マーカーのサイズを設定しみます。

「.MarkerSize」を使います。

Sub TEST8()
    
    '1つ目の系列
    With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1)
        .MarkerSize = 8 'マーカーのサイズ
    End With
    
End Sub

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

元のグラフ

グラフを用意

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

マーカーの「サイズ」を設定

VBAでマーカーの「サイズ」を設定できました

VBAでマーカーの「サイズ」を設定できました。

マーカーの背景色と枠線色

マーカーの「背景色」と「枠線色」を設定します。

マーカーの「背景色」を設定

マーカーの「背景色」を設定するVBAコードです。

「.MarkerBackgroundColor」を使います。

Sub TEST9()

    With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1)
        'マーカーの背景色
        .MarkerBackgroundColor = RGB(255, 0, 0) '赤
    End With
        
End Sub

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

グラフを用意

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

VBAでマーカーの「背景色」を設定できました

VBAでマーカーの「背景色」を設定できました。

マーカーの「枠線色」を設定

マーカーの「枠線色」を設定するVBAコードです。

「.MarkerForegroundColor」を使います。

Sub TEST10()

    With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1)
        'マーカーの枠線色
        .MarkerForegroundColor = RGB(255, 0, 0) '赤
    End With
        
End Sub

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

グラフを用意

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

VBAでマーカーの「枠線色」を設定できました

VBAでマーカーの「枠線色」を設定できました。

ポイント単位の設定

「ポイント単位」で、マーカーを設定します。

ポイント単位の場合は、「Points」を使います。

Sub TEST11()
    
    '1つ目の系列の「4つ目」のポイント
    With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).Points(4)
        'マーカーの背景色
        .MarkerBackgroundColor = RGB(255, 0, 0) '赤色
        'マーカーの枠線色
        .MarkerForegroundColor = RGB(255, 0, 0) '赤色
    End With
        
End Sub

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

元のグラフ

グラフを用意

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

「ポイント単位」でマーカーを設定

VBAで「ポイント単位」でマーカーを設定できました

VBAで「ポイント単位」でマーカーを設定できました。

棒グラフで系列の設定

「棒グラフ」で系列の設定してみます。

系列のイメージについては、こちらでまとめています。

系列の色を設定

棒グラフの「系列の色」を設定するVBAコードです。

Sub TEST12()
    
    '1つ目の系列の塗りつぶし
    With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).Format.Fill
        .ForeColor.RGB = RGB(0, 255, 0) '緑
    End With
        
End Sub

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

元のグラフ

グラフを用意

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

系列の「色」を設定

VBAで系列の「色」を設定できました

VBAで系列の「色」を設定できました。

系列のポイント単位で色を設定

系列の「ポイント単位」で色を設定してみます。

Sub TEST13()
    
    '1つ目の系列の「2つ目のポイント」の塗りつぶし
    With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).Points(2).Format.Fill
        .ForeColor.RGB = RGB(0, 255, 0) '緑
    End With
        
End Sub

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

元のグラフ

グラフを用意

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

「ポイント単位」で色を設定

VBAで「ポイント単位」で色を設定できました

VBAで「ポイント単位」で色を設定できました。

おわりに

この記事では、VBAで系列の「色」や「太さ」などの書式設定をする方法について、ご紹介しました。

「ForeColor.RGB」や「Weight」などを使って、系列の色や太さが設定できます。

系列の書式設定は、たくさんのVBAコードがあるので、覚えるのは無理ですね。

最初に「ベース」となるグラフを作って利用する方が効率的です。

一部の書式を変更したい場合に、今回紹介したVBAコードを使って、書式を設定していきましょう。

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

関連する記事から探す

カテゴリから探す

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

サイト内を検索する

↓キーワードを入力する

アーカイブから探す