【Excel VBA】シェイプの枠線の太さ・色・スタイルを変更する方法

目次

はじめに

Excelの資料作成において、図形(シェイプ)を強調したり、デザインの統一感を出したりするために「枠線」の書式設定は欠かせません。この枠線のスタイルをVBAで操作できれば、レポートの見栄えを自動で整えるなど、作業を大幅に効率化できます。

この記事では、VBAを使ってシェイプの枠線を表示・非表示にしたり、太さや色、線の種類(実線、破線など)を変更したりする方法を、具体的なコードを交えて解説します。


事前準備:操作対象のシェイプに名前を付ける

コードで特定のシェイプを正確に操作するために、あらかじめシェイプに「枠線設定サンプル」という名前を付けておきましょう。

(名前の付け方:シェイプを選択 → 「図形の書式」タブ → 「オブジェクトの選択と表示」から名前を変更)


シェイプの枠線を操作する「Line」オブジェクト

シェイプの枠線に関する設定は、すべてShapeオブジェクトが持つLineオブジェクトのプロパティで管理します。主なプロパティには以下のようなものがあります。

  • Visible: 枠線を表示するかどうか (msoTrueで表示、msoFalseで非表示)
  • Weight: 枠線の太さ(単位:ポイント)
  • ForeColor: 枠線の色に関する設定(RGB値やテーマカラーで指定)
  • DashStyle: 線の種類(実線、破線、一点鎖線など)

VBAコード例:枠線の書式をまとめて設定する

以下のコードは、「枠線設定サンプル」という名前のシェイプに対して、枠線を表示し、太さ・色・スタイルをまとめて設定するサンプルです。

Sub FormatShapeOutline()

    ' "枠線設定サンプル" という名前のシェイプを操作対象とする
    With ActiveSheet.Shapes("枠線設定サンプル").Line
    
        ' 枠線を表示する設定 (True)
        .Visible = msoTrue
        
        ' 枠線の太さを3ポイントに設定
        .Weight = 3
        
        ' 枠線の色をRGB値で指定 (濃い青色)
        .ForeColor.RGB = RGB(70, 130, 180)
        
        ' 枠線のスタイルを破線 (四角) に設定
        .DashStyle = msoLineDash
        
    End With

End Sub

コードの解説

With ActiveSheet.Shapes("枠線設定サンプル").Lineと記述することで、続くEnd Withまでのブロック内では.Visible.Weightのように、Lineオブジェクトの各プロパティを短い記述で操作できます。

  • .Visible = msoTrue 枠線を表示する設定です。非表示にしたい場合はmsoFalseを指定します。
  • .Weight = 3 枠線の太さを3ポイントに設定しています。この数値を大きくすれば線は太く、小さくすれば細くなります。
  • .ForeColor.RGB = RGB(70, 130, 180) ForeColorオブジェクトのRGBプロパティを使い、枠線の色をRGB値で指定しています。
  • .DashStyle = msoLineDash 枠線の種類をmsoLineDash(破線)に設定しています。他にもmsoLineSolid(実線)やmsoLineDashDot(一点鎖線)など、様々なスタイルが用意されています。

応用編:枠線の色も「テーマカラー」で設定する

塗りつぶしの色と同様に、枠線の色もExcelの「テーマ」と連動させることができます。これにより、ブック全体のデザイン変更に追従する、保守性の高いマクロを作成できます。

Sub SetOutlineColorByTheme()

    With ActiveSheet.Shapes("枠線設定サンプル").Line.ForeColor
    
        ' テーマの「アクセント3」の色を基準にする
        .ObjectThemeColor = msoThemeColorAccent3
        
        ' 基準の色を20%明るくする
        .TintAndShade = 0.2
        
    End With

End Sub

まとめ

今回は、Excel VBAでシェイプの枠線を操作する方法を解説しました。

ポイントの振り返り:

  • 枠線の設定はShape.Lineオブジェクトで行う。
  • .Visibleで表示・非表示を切り替える。
  • .Weightで太さをポイント単位で指定する。
  • .ForeColorで色を、.DashStyleで線の種類を指定する。

これらのプロパティを使いこなすことで、単に図形を配置するだけでなく、視覚的に分かりやすく、デザイン性の高い資料を自動で作成することが可能になります。ぜひ、ご自身の業務にお役立てください。

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

この記事を書いた人

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

目次