Excel VBAを使って棒グラフの太さを変更したいというニーズが、割とあるようです。
「excel vba GapWidth 棒グラフの太さを変える」
といった検索キーワードで、このサイトへのアクセスもあります。
棒グラフの太さを変更するサンプル
下図のようなデータ系列が2つの、
シンプルな棒グラフがアクティブな状態で、挙動を確認しましょう。
With ActiveChart.ChartGroups(1)
.GapWidth = 100
.Overlap = 0
End With
End Sub
グラフがアクティブな状態で、拙著『いちばんやさしいExcel VBAの教本』で繰り返し行っているように、ステップ実行してください。
ChartGroup.GapWidthプロパティの設定
ChartGroup.GapWidthプロパティが設定されると、
.GapWidth = 100
下図のように棒グラフの太さが(結果的に)太くなります。
ChartGroup.Overlapプロパティの設定
更に、ChartGroup.Overlapプロパティが設定されると、
.Overlap = 0
下図のように棒グラフの太さが(結果的に)もう少し太くなります。
棒グラフの太さを直接変えるのではない
棒グラフの太さを変更するのではなく、GapWidthプロパティですき間を指定したり、Overlapプロパティで重なり具合を指定したりすることで、結果的に棒グラフの太さが変化します。
「excel vba GapWidth 棒グラフの太さを変える」
と検索なさった方は、ChartGroup.GapWidthプロパティについてはご存知のようですが、ChartGroup.Overlapプロパティも、棒グラフの太さに関係します。
ローカルウィンドウでOverlap・GapWidthプロパティを確認する
ChartGroupオブジェクトに用意されているOverlapプロパティ・GapWidthプロパティの変更が、どのような効果をもたらすかは、ローカルウィンドウで値を変えてみると、わかりやすいでしょう。
Dim cht_grp As ChartGroup
Set cht_grp = ActiveChart.ChartGroups(1)
Stop
End Sub
上記のSubプロシージャを実行して、Stopステートメントで中断したら、ローカルウィンドウを表示して変数cht_grpを展開し、GapWidthとOverlapを探してください。
先ほどの
With ActiveChart.ChartGroups(1) .GapWidth = 100 .Overlap = 0
を実行した直後であれば、下図のように表示されているはずです。
ローカルウィンドウでOverlapを変更する
このOverlapプロパティに表示されている「0」を、下図のように選択して、
キーボードから「-100」と入力して変更すると、下図のように棒グラフの太さが変更されます。
[データ系列の書式設定]-[系列のオプション]との連動
GapWidthプロパティのほうも、同様に値を変更すると、結果的に棒グラフの太さが変化することを確認してください。
もちろん、これらの値は、Excelの[データ系列の書式設定]作業ウィンドウ-[系列のオプション]と連動しています。
ローカルウィンドウの、Overlapを変更すれば[データ系列の書式設定]-[系列の重なり]が連動して変化し、GapWidthを変更すれば[データ系列の書式設定]-[要素の間隔]が変化します。
最終更新日時:2022-06-25 08:59
Home » エクセルマクロ・Excel VBAの使い方 » グラフ・Chart » VBAで棒グラフの太さを変更する