大体でIT

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

大体でIT

Excel VBAで、グラフの軸の書式設定をする方法について、ご紹介します。軸の表示は「HasAxis」を使います。軸の書式設定は「Axes」で軸を指定して、設定します。グラフの書式設定をするVBAコードは、たくさんありますので、すべて覚えるのではなく、必要なコードを抜粋して使うといいです。

はじめに

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

グラフの軸を表示するには、「HasAxis」を使います。

軸の書式設定するオブジェクトは、「Axes」になります。

グラフの書式設定をするVBAコードは、たくさんありますので、必要なコードをだけを抜粋して使うといいです。

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

この記事で紹介すること

  • VBAでグラフの軸の書式設定をする方法

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

目次

VBAコードまとめ

グラフの「軸」の書式設定をするVBAコードについて、まとめています。

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

'軸の表示/非表示
ActiveSheet.ChartObjects(1).Chart.HasAxis(xlValue, 1) = True '「縦軸」の「第1軸」を表示(非表示はFalse)
ActiveSheet.ChartObjects(1).Chart.HasAxis(xlValue, 2) = True '「縦軸」の「第2軸」の表示(非表示はFalse)
ActiveSheet.ChartObjects(1).Chart.HasAxis(xlCategory, 1) = True '「横軸」の「第1軸」の表示 (非表示はFalse)
ActiveSheet.ChartObjects(1).Chart.HasAxis(xlCategory, 2) = True '「横軸」の「第2軸」の表示(非表示はFalse)
  
'スケールの設定
ActiveSheet.ChartObjects(1).Chart.Axes(xlValue, 1).MinimumScale = 500 '「最小」の目盛り
ActiveSheet.ChartObjects(1).Chart.Axes(xlValue, 1).MaximumScale = 1200 '「最大」の目盛り
ActiveSheet.ChartObjects(1).Chart.Axes(xlValue, 1).MinimumScaleIsAuto = True '「最小」の目盛りを「自動」
ActiveSheet.ChartObjects(1).Chart.Axes(xlValue, 1).MaximumScaleIsAuto = True '「最大」の目盛りを「自動」

'軸の「文字」の書式設定
ActiveSheet.ChartObjects(1).Chart.Axes(xlValue, 1).TickLabels.Font.Color = RGB(255, 0, 0) '文字色
ActiveSheet.ChartObjects(1).Chart.Axes(xlValue, 1).TickLabels.Font.Size = 12 'サイズ
  
'軸の「表示形式」
ActiveSheet.ChartObjects(1).Chart.Axes(xlValue, 1).TickLabels.NumberFormatLocal = "\#,##0"
ActiveSheet.ChartObjects(1).Chart.Axes(xlValue, 1).TickLabels.NumberFormatLocal = "G/標準"
ActiveSheet.ChartObjects(1).Chart.Axes(xlValue, 1).TickLabels.NumberFormatLinked = -1 'セルとリンク

'軸の「背景色」
ActiveSheet.ChartObjects(1).Chart.Axes(xlValue, 1).TickLabels.Format.Fill.Visible = msoTrue '塗りつぶあり
ActiveSheet.ChartObjects(1).Chart.Axes(xlValue, 1).TickLabels.Format.Fill.ForeColor.RGB = RGB(255, 0, 0) '背景色
ActiveSheet.ChartObjects(1).Chart.Axes(xlValue, 1).TickLabels.Format.Fill.Transparency = 0.8 '透過率
ActiveSheet.ChartObjects(1).Chart.Axes(xlValue, 1).TickLabels.Format.Fill.Visible = msoFalse '塗りつぶしなし
 
'軸の「反転」
ActiveSheet.ChartObjects(1).Chart.Axes(xlValue, 1).ReversePlotOrder = True '軸を反転
ActiveSheet.ChartObjects(1).Chart.Axes(xlValue, 1).ReversePlotOrder = False '軸の反転を戻す

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

グラフの軸の表示と非表示

グラフの「軸」の表示と非表示をやってみます。

軸の表示と非表示

「軸」の表示と非表示をします。

軸の表示と非表示は、「.HasAxis」を使います。

縦軸は「xlValue」で、横軸は「xlCategory」とします。

「.HasAxis」の2つ目の引数で「第1軸」か「第2軸」かを設定します。

'縦軸の第1軸
ActiveSheet.ChartObjects(1).Chart.HasAxis(xlValue, 1) = True '表示
ActiveSheet.ChartObjects(1).Chart.HasAxis(xlValue, 1) = False '非表示
'縦軸の第2軸
ActiveSheet.ChartObjects(1).Chart.HasAxis(xlValue, 2) = True '表示
ActiveSheet.ChartObjects(1).Chart.HasAxis(xlValue, 2) = False '非表示
'横軸の第1軸
ActiveSheet.ChartObjects(1).Chart.HasAxis(xlCategory, 1) = True '表示
ActiveSheet.ChartObjects(1).Chart.HasAxis(xlCategory, 1) = False '非表示
'横軸の第2軸
ActiveSheet.ChartObjects(1).Chart.HasAxis(xlCategory, 2) = True '表示
ActiveSheet.ChartObjects(1).Chart.HasAxis(xlCategory, 2) = False '非表示

という感じです。

実際に、実行してみます。

縦軸の第1軸

「縦軸の第1軸」を表示してみます。

使うVBAコードは、「.HasAxis(xlValue, 1) = True」です。

Sub TEST1()
    
    '縦軸の第1軸を表示
    ActiveSheet.ChartObjects(1).Chart.HasAxis(xlValue, 1) = True
        
End Sub

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

グラフを用意

グラフを用意

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

「縦軸の第1軸」を表示

「縦軸の第1軸」を表示

「縦軸の第1軸」を表示できました。

縦軸の第2軸

「縦軸の第2軸」を設定してみます。

使うVBAコードは、「.HasAxis(xlValue, 2) = True」です。

Sub TEST2()
    
    '縦軸の第2軸を表示
    ActiveSheet.ChartObjects(1).Chart.HasAxis(xlValue, 2) = True
        
End Sub

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

グラフを用意

グラフを用意

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

「縦軸の第2軸」を表示

「縦軸の第2軸」を表示

「縦軸の第2軸」を表示できました。

横軸の第1軸

「横軸の第1軸」を設定してみます。

使うVBAコードは、「.HasAxis(xlCategory, 1) = True」です。

Sub TEST3()
    
    '横軸の第1軸を表示
    ActiveSheet.ChartObjects(1).Chart.HasAxis(xlCategory, 1) = True
        
End Sub

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

グラフを用意

グラフを用意

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

「縦軸の第2軸」を表示

「縦軸の第2軸」を表示

「縦軸の第2軸」を表示できました。

横軸の第2軸

「横軸の第2軸」を設定してみます。

使うVBAコードは、「.HasAxis(xlCategory, 2) = True」です。

Sub TEST4()
    
    '横軸の第2軸を表示
    ActiveSheet.ChartObjects(1).Chart.HasAxis(xlCategory, 2) = True
        
End Sub

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

グラフを用意

グラフを用意

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

「縦軸の第2軸」を表示

「縦軸の第2軸」を表示

「縦軸の第2軸」を表示できました。

グラフ軸の書式設定をする

グラフ軸の「書式設定」をしてみます。

スケール

スケールを設定してみます。

縦軸の第1軸を設定するので、「.Axes(xlValue, 1)」を使います。

最大と最小の設定

スケールの最大と最小の設定をしてみます。

使うVBAコードは、「.MinimumScale」と「.MaximumScale」です。

Sub TEST5()
    
    '縦軸の第1軸
    With ActiveSheet.ChartObjects(1).Chart.Axes(xlValue, 1)
        .MinimumScale = 500 '「最小」の目盛り
        .MaximumScale = 1200 '「最大」の目盛り
    End With
    
End Sub

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

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

では、実行してみます。

最大と最小の設定できた

最大と最小の設定できました。

自動にする

スケールを「自動」にしてみます。

最小と最大のスケールを自動にするには、「.MinimumScaleIsAuto = True」と「.MaximumScaleIsAuto = True」を使います。

Sub TEST6()
    
    '縦軸の第1軸
    With ActiveSheet.ChartObjects(1).Chart.Axes(xlValue, 1)
        .MinimumScaleIsAuto = True '「最小」の目盛りを「自動」
        .MaximumScaleIsAuto = True '「最大」の目盛りを「自動」
    End With
    
End Sub

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

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

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

スケールを自動にできました

スケールを「自動」にできました。

文字の書式

文字の書式を設定してみます。

縦軸の第1軸を設定するので、「.Axes(xlValue, 1)」とします。

数値軸を設定する場合は、「.TickLabels」を使います。

「.Font.Color」と「.Font.Size」で「文字色」と「文字サイズ」を設定します。

Sub TEST7()
    
    '縦軸の第1軸の数値
    With ActiveSheet.ChartObjects(1).Chart.Axes(xlValue, 1).TickLabels
        .Font.Color = RGB(255, 0, 0) '文字色
        .Font.Size = 12 'サイズ
    End With
        
End Sub

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

グラフを用意

グラフを用意

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

文字色、文字サイズを設定

文字色、文字サイズを設定

縦軸の数値軸の「文字色」、「文字サイズ」を設定できました。

表示形式

縦軸の第1軸で、「表示形式」を設定してみます。

縦軸の第1軸で、数値軸の設定なので、「.Axes(xlValue, 1).TickLabels」を使います。

表示形式を「通貨」にする

表示形式の設定は、「.NumberFormatLocal」を使います。

通貨なので、「"\#,##0"」を入力します。

Sub TEST8()
    
    '縦軸の第1軸の数値
    With ActiveSheet.ChartObjects(1).Chart.Axes(xlValue, 1).TickLabels
        .NumberFormatLocal = "\#,##0"
    End With
    
End Sub

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

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

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

表示形式を「通貨」にできました

縦軸の第1軸で、数値軸の表示形式を「通貨」にできました。

表示形式を「標準」にする

表示形式を「標準」にする場合は、「"G/標準"」を入力します。

Sub TEST9()
    
    '縦軸の第1軸の数値
    With ActiveSheet.ChartObjects(1).Chart.Axes(xlValue, 1).TickLabels
        .NumberFormatLocal = "G/標準"
    End With
    
End Sub

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

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

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

表示形式を「標準」にできました

表示形式を「標準」にできました。

表示形式を「セルにリンク」する

表示形式を「セルにリンク」するには、「.NumberFormatLinked = -1」とします。

Sub TEST10()
    
    '縦軸の第1軸の数値
    With ActiveSheet.ChartObjects(1).Chart.Axes(xlValue, 1).TickLabels
        .NumberFormatLinked = -1 '数値軸とシートの表示形式をリンク
    End With
    
End Sub

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

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

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

表示形式を「セルにリンク」できました

表示形式を「セルにリンク」できました。

背景の書式

縦軸の第1軸で、数値軸の「背景の書式」を設定してみます。

背景を設定するには、「.Format.Fill」を使います。

背景色、透過率を設定

背景色、透過率を設定するには、「.Visible = msoTrue」で塗りつぶしありにして、「.ForeColor.RGB」と「.Transparency」で背景色と透過率を設定します。

Sub TEST11()
    
    '縦軸の第1軸の背景
    With ActiveSheet.ChartObjects(1).Chart.Axes(xlValue, 1).TickLabels.Format.Fill
        .Visible = msoTrue '塗りつぶあり
        .ForeColor.RGB = RGB(255, 0, 0) '背景色
        .Transparency = 0.8 '透過率
    End With
        
End Sub

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

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

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

背景色、透過率を設定できました

背景色、透過率を設定できました。

「塗りつぶしなし」にする

「塗りつぶしなし」にするには、「.Visible = msoFalse」とします。

Sub TEST12()
    
    '縦軸の第1軸の背景
    With ActiveSheet.ChartObjects(1).Chart.Axes(xlValue, 1).TickLabels.Format.Fill
        .Visible = msoFalse '塗りつぶしなし
    End With
        
End Sub

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

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

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

背景色を「塗りつぶしなし」にできました

背景色を「塗りつぶしなし」にできました。

軸を反転する

縦軸の第1軸を反転してみます。

軸を反転する

軸を反転するには、「.ReversePlotOrder = True」とします。

Sub TEST13()
    
    '縦軸の第1軸
    With ActiveSheet.ChartObjects(1).Chart.Axes(xlValue, 1)
        .ReversePlotOrder = True '軸を反転
    End With
    
End Sub

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

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

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

縦軸の第1軸を反転できました

縦軸の第1軸を反転できました。

軸の反転を戻す

軸の反転を戻すには、「.ReversePlotOrder = False」とします。

Sub TEST14()
    
    '縦軸の第1軸
    With ActiveSheet.ChartObjects(1).Chart.Axes(xlValue, 1)
        .ReversePlotOrder = False '軸の反転を戻す
    End With
    
End Sub

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

縦軸の第1軸を反転を戻せました

縦軸の第1軸を反転を戻せました。

おわりに

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

グラフの軸を表示するには、「HasAxis」を使います。

軸の書式設定するオブジェクトは、「Axes」になります。

グラフの書式設定をするVBAコードは、たくさんありますので、必要なコードをだけを抜粋して使うといいです。

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

関連する記事から探す

カテゴリから探す

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

アーカイブから探す