【Excel VBA】散布図の線の太さを指定セルの数値で変更する方法

目次

経緯

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

使用方法

  1. P3セル に「3」や「2.5」など、線の太さとなる数値を入力します
  2. 図形(「実行」などと表示)を挿入して右クリック → 「マクロの登録」
  3. line_wide を選択し、「OK」
  4. 実行ボタンを押すと、すべてのグラフの線が指定された太さに更新されます

注意点

  • セル P3数値以外を入力するとエラーが発生する可能性があるため注意してください
     → 必要に応じて IsNumeric()On Error Resume Next を使ってエラーハンドリングも可能です
  • この処理は SeriesCollection(すべての系列)に対して均等に太さを適用します
  • Format.Line.Weightポイント単位での設定になります(例:12.5 など)

応用のヒント

  • 複数のセルに対応させて、系列ごとに太さを変えることも可能です
  • Chart.FullSeriesCollection を使えば、グラフ内のすべての系列を確実に網羅できます(特に複雑なグラフの場合)

まとめ

  • Format.Line.Weight を使うことで、VBAからグラフの線の太さを一括制御できる
  • セル入力と連動させることで、操作性の高いUIに拡張可能
  • グラフの見た目調整を効率化したい方にとって、非常に便利なテクニック

ここまでお読みいただきありがとうございました。
業務のグラフ調整やレポート作成にぜひご活用ください。

技術書の購入コストを抑えてスキルアップするなら

ここまで読んでいただきありがとうございます。最後に宣伝をさせてください。

プログラミングの技術書や参考書は、1冊3,000円〜5,000円するものも多く、出費がかさみがちです。Kindle Unlimitedであれば、月額980円で500万冊以上の書籍が読み放題となります。

気になる言語の入門書から、アルゴリズム、基本設計の専門書まで、手元のスマホやPCですぐに参照可能です。現在は「30日間の無料体験」や、対象者限定の「3か月499円プラン」なども実施されています。まずはご自身のアカウントでどのようなオファーが表示されるか確認してみてください。

[Kindle Unlimited 読み放題プランをチェックする]

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次