目次
経緯
Excelで複数の散布図を使ってデータを可視化している中で、
**「グラフの線の太さを動的に変えられたら便利なのに」**と思うことがありました。
マウスで個別に線の太さを変更するのは手間がかかるため、
VBAで一括制御できる仕組みを作ってみました。
実現したい仕様
- Excelシート上に複数の散布図がある
- セル
P3に入力された数値を「線の太さ」として使用 - 隣に配置した「実行」ボタン(図形)を押すと、
すべてのグラフの線の太さがP3の値に自動変更される
実装コード(VBA)
以下のコードを 標準モジュール に貼り付けてください。
Sub line_wide()
Dim ws As Worksheet
Dim cht As ChartObject
Dim ser As Series
Dim lineWidth As Double
' 現在のシートを取得
Set ws = ActiveSheet
' セルP3の数値を取得(線の太さ)
lineWidth = ws.Range("P3").Value
' ワークシート内の全グラフオブジェクトをループ
For Each cht In ws.ChartObjects
' 各グラフの全シリーズ(系列)に対して処理
For Each ser In cht.Chart.SeriesCollection
ser.Format.Line.Weight = lineWidth
Next ser
Next cht
End Sub
使用方法
P3セルに「3」や「2.5」など、線の太さとなる数値を入力します- 図形(「実行」などと表示)を挿入して右クリック → 「マクロの登録」
line_wideを選択し、「OK」- 実行ボタンを押すと、すべてのグラフの線が指定された太さに更新されます
注意点
- セル
P3に 数値以外を入力するとエラーが発生する可能性があるため注意してください
→ 必要に応じてIsNumeric()やOn Error Resume Nextを使ってエラーハンドリングも可能です - この処理は SeriesCollection(すべての系列)に対して均等に太さを適用します
Format.Line.Weightは ポイント単位での設定になります(例:1、2.5など)
応用のヒント
- 複数のセルに対応させて、系列ごとに太さを変えることも可能です
Chart.FullSeriesCollectionを使えば、グラフ内のすべての系列を確実に網羅できます(特に複雑なグラフの場合)
まとめ
Format.Line.Weightを使うことで、VBAからグラフの線の太さを一括制御できる- セル入力と連動させることで、操作性の高いUIに拡張可能
- グラフの見た目調整を効率化したい方にとって、非常に便利なテクニック
ここまでお読みいただきありがとうございました。
業務のグラフ調整やレポート作成にぜひご活用ください。
技術書の購入コストを抑えてスキルアップするなら

ここまで読んでいただきありがとうございます。最後に宣伝をさせてください。
プログラミングの技術書や参考書は、1冊3,000円〜5,000円するものも多く、出費がかさみがちです。Kindle Unlimitedであれば、月額980円で500万冊以上の書籍が読み放題となります。
気になる言語の入門書から、アルゴリズム、基本設計の専門書まで、手元のスマホやPCですぐに参照可能です。現在は「30日間の無料体験」や、対象者限定の「3か月499円プラン」なども実施されています。まずはご自身のアカウントでどのようなオファーが表示されるか確認してみてください。
