はじめに
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
で線の種類を指定する。
これらのプロパティを使いこなすことで、単に図形を配置するだけでなく、視覚的に分かりやすく、デザイン性の高い資料を自動で作成することが可能になります。ぜひ、ご自身の業務にお役立てください。