【VBA】棒グラフを作成する

VBAで
 ・棒グラフを作成
できます!

棒グラフ
棒グラフ

棒グラフは
 ・量を比較する
ときに使用します!

PR

VBAコード

ここでは例として
 ・シート「sample」上にある「横浜市の各区の人口」データを元に
 ・シート「sample」上に「棒グラフ(集合縦棒)」を作成
します。

「横浜市の各区の人口」データ
「横浜市の各区の人口」データ

棒グラフを見やすくするために、データの並びを「降順」にしています。
※棒グラフの「棒の順番」を「データの数字が大きい順」にするため。

データの並びを「降順」
データの並びを「降順」
Option Explicit

Sub sample()

    Dim ws As Worksheet
    Dim topPosition As Double
    Dim leftPosition As Double
    Dim shapeObj As shape
    
    'シートを指定
    Set ws = Worksheets("sample")
    
    '棒グラフを表示させる位置を取得
    With ws.Range("E4")
        leftPosition = .Left
        topPosition = .Top
    End With
    
    '棒グラフを作成
    Set shapeObj = ws.Shapes.AddChart2(Style:=201, _
                                       XlChartType:=xlColumnClustered, _
                                       Left:=leftPosition, _
                                       Top:=topPosition)
    
    '棒グラフの名前
    shapeObj.Name = "横浜市の各区の人口"
    
    '棒グラフの設定
    With shapeObj.chart
        '元データ
        .SetSourceData Source:=ws.Range("B3").CurrentRegion
        'タイトル
        .ChartTitle.Text = "横浜市の各区の人口"
        '横軸のラベルを縦書き
        .Axes(xlCategory).TickLabels.Orientation = xlTickLabelOrientationVertical
    End With

End Sub

「Worksheetオブジェクト」の「Shapes」プロパティにより、「Shapesオブジェクト」を取得します(20行目)。

「Shapesオブジェクト」の「AddChart2」メソッドにより、棒グラフを作成します(20~23行目)。
※手動で作成した場合と同じスタイルになるように、引数「Style」に「201」を指定します。
※グラフを「集合縦棒」にするために、引数「XlChartType」に「XlChartType列挙体」の「xlColumnClustered」を指定します。

※「AddChart2」メソッドにより「Shapeオブジェクト」を取得します。

グラフを削除する際に「名前を指定して削除」できるようにするため、棒グラフに名前を付けます(26行目)。

棒グラフの各種設定をします(29~36行目)。

PR

実行結果

棒グラフ(集合縦棒)を作成できました。

実行結果
実行結果

横軸のラベルの「文字列の方向」を「縦書き」にしたかったのですが、やり方が分かりませんでした。
※どうしても「縦書き(半角文字含む)」になってしまう。
※公式サイトを見る限り「xlTickLabelOrientationVertical」を指定すれば「縦書き」になるはずだが、ならない

「縦書き(半角文字含む)」になってしまう
「縦書き(半角文字含む)」になってしまう
PR

参考①

グラフの削除もできます。

詳細は以下の記事をご確認ください。

PR

参考②

「横浜市の各区の人口」データの詳細は、横浜市のサイトをご確認ください。
※以下のURLにある「最新の人口ニュース(推計人口及び人口動態」です。

PR

参考③

上記で使用した以下の詳細は、公式サイトをご確認ください。

●「Worksheetオブジェクト」の「Shapes」プロパティ


「Shapesオブジェクト」の「AddChart2」メソッド


Shapeオブジェクト」


●XlChartType列挙体

PR

参考④

列挙体の詳細は、以下の記事をご確認ください。