Excel VBAで罫線を引く方法!外枠/内枠指定も!

Excel VBAで罫線を引く方法!外枠/内枠指定も!

Excel VBAで罫線を引く方法を知りたいときはないでしょうか。

けど、そんな中で悩むことは、

・Excel VBAで罫線を引く方法がわからない
・Excel VBAで外枠/内枠指定し罫線を引く方法がわからない

ですよね。

今回はそんなお悩みを解決する

・Excel VBAで罫線を引く方法
・Excel VBAで外枠/内枠指定し罫線を引く方法

についてまとめます!

Excel VBAで罫線を引く方法

RangeオブジェクトのBordersコレクションのプロパティを使用する

RangeオブジェクトのBordersコレクションのプロパティを使用するを使用し罫線を引くことができます。

罫線のプロパティは、Rangeオブジェクト内にあるBorderオブジェクトで取得することができます。

Borderオブジェクトはコレクションの形式になっていますので、各要素を定数で指定しオブジェクトを取得、設定していきます。

サンプルコード1

以下サンプルコードとなります。
セルの上下縦横の各ラインスタイルに罫線を指定しています。

Sub 罫線を引く1()
    Range("B2").Borders(xlEdgeLeft).LineStyle = xlContinuous
    Range("B2").Borders(xlEdgeTop).LineStyle = xlContinuous
    Range("B2").Borders(xlEdgeRight).LineStyle = xlContinuous
    Range("B2").Borders(xlEdgeBottom).LineStyle = xlContinuous
End Sub

実行結果

実行してみましょう。

はい、指定セルに罫線が引かれていますね。

サンプルコード2

またBordersコレクションまとめてプロパティを設定することも可能です。

Sub 罫線を引く2()
    With Range("B2").Borders
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
End Sub

実行結果

上記と同様の結果になります。

Bordersコレクションのプロパティ

Bordersコレクションのプロパティについては以下の通りです。

XlLineStyle

範囲周辺の罫線の種類を指定します。

定数 説明
xlContinuous 1 実線
xlDash -4115 破線
xlDashDot 4 一点鎖線
xlDashDotDot 5 ニ点鎖線
xlDot -4142 点線
xlDouble -4119 2 本線
xlLineStyleNone -4118 線なし
xlSlantDashDot 13 斜破線

参考:https://learn.microsoft.com/ja-jp/office/vba/api/excel.xllinestyle

XlBorderWeight

範囲周辺の罫線の太さを指定します。

定数 説明
xlHairline 1 細線 (最も細い罫線)
xlMedium -4138 普通
xlThick 4 太線 (最も太い罫線)
xlThin 2 極細

参考:https://learn.microsoft.com/ja-jp/office/vba/api/excel.xlborderweight

XlBordersIndex

範囲における罫線を引く位置を指定します。

定数 説明
xlDiagonalDown 5 範囲の各セルの左上隅から右下に実行されている罫線。
xlDiagonalUp 6 左下隅から範囲内の各セルの右上隅に実行されている罫線。
xlEdgeBottom 9 範囲内の下側の罫線
xlEdgeLeft 7 範囲の左端の罫線。
xlEdgeRight 10 範囲の右端の罫線。
xlEdgeTop 8 範囲内の上側の罫線
xlInsideHorizontal 12 範囲外の罫線を除く、範囲内のすべてのセルの水平罫線
xlInsideVertical 11 範囲外の罫線を除く、範囲内のすべてのセルの垂直罫線

参考:https://learn.microsoft.com/ja-jp/office/vba/api/excel.xlbordersindex

RangeオブジェクトのBorderAroundメソッド

次にRangeオブジェクトのBorderAroundメソッドを使用し罫線を引くことができます。

BorderAroundメソッドはセルまたは範囲に対してBorderオブジェクトのプロパティを指定し、スタイルを適用することができます。

サンプルコード

以下サンプルコードとなります。
セルに罫線を指定しています。

Sub 罫線を引く3()
    Range("B2").BorderAround xlContinuous, xlMedium
End Sub

実行結果

実行してみましょう。

はい、指定セルに罫線が引かれていますね。

Range.BorderAround メソッドの構文とパラメータ

Range.BorderAround メソッドの構文は以下の通りです。

BorderAround (LineStyle, Weight, ColorIndex, Color, ThemeColor)

Range.BorderAround メソッドのパラメータは以下の通りです。

名前 必須 / オプション データ型 説明
LineStyle 省略可能 バリアント型 罫線の線のスタイルを指定する?XlLineStyle?の定数の 1 つ。
Weight 省略可能 XlBorderWeight 罫線の太さを指定します。
ColorIndex 省略可能 XlColorIndex 罫線の色を現在のカラー パレットのインデックス番号または?XlColorIndex?定数で指定します。
Color 省略可能 バリアント型 (Variant) 罫線の色を示す RGB 値を指定します。
ThemeColor 省略可能 バリアント型 現在の色テーマのインデックスとして、または?XlThemeColor?値としてテーマの色。

参考:https://learn.microsoft.com/ja-jp/office/vba/api/excel.range.borderaround

Excel VBAで外枠/内枠指定し罫線を引く方法

Excel VBAで外枠/内枠指定し罫線を引く方法について説明をします。

複数のセルに罫線を引く

まずは複数のセルを範囲指定し、表として罫線を引く処理をしていきます。

サンプルコード

以下サンプルコードとなります。
“B2:D10″の範囲に罫線を引く内容となります。

Sub 罫線を引く4()
    With Range("B2:D10").Borders
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
End Sub

実行結果

実行してみましょう。

はい、指定範囲に罫線が引かれていますね。

表の外枠に太い罫線を引く

次に表の外枠に太い罫線を引き、表の罫線を完成させます。

サンプルコード

以下サンプルコードとなります。
“B2:D10″の範囲のBordersコレクションの上下左右のアイテムに対し罫線を引く内容となります。

Sub 罫線を引く5()
    With Range("B2:D10").Borders
        .LineStyle = xlContinuous
        .ColorIndex = xlAutomatic
        .Weight = xlThin
        .Item(xlEdgeLeft).Weight = xlThick
        .Item(xlEdgeTop).Weight = xlThick
        .Item(xlEdgeRight).Weight = xlThick
        .Item(xlEdgeBottom).Weight = xlThick
    End With
End Sub

実行結果

実行してみましょう。

はい、指定範囲の外枠に罫線が引かれていますね!

BorderAroundメソッドを使って外枠をつくる

別パターンとして、BorderAroundメソッドを使って外枠をつくるについて説明をします。

サンプルコード

以下サンプルコードとなります。
“B2:D10″の範囲に罫線を引く内容となります。

Sub 罫線を引く5()
    With Range("B2:D10")
        .Borders.LineStyle = xlContinuous
        .Borders.Weight = xlThin
        .Borders.ColorIndex = xlAutomatic
        .BorderAround xlContinuous, xlThick
    End With
End Sub

実行結果

実行してみましょう。

はい、こちらも指定範囲の外枠に罫線が引かれていますね!

タカヒロ
タカヒロ
BorderAroundメソッドを使った方がコードがすっきりしますね。

自由に選択した範囲の罫線を引く

おまけに自由に選択した範囲の罫線を引く内容について説明をしたいと思います。

これまでは単体のセルや複数セルを指定した範囲に罫線を引いていましたが、別の範囲に罫線を引く場合、いちいち設定値を変える必要がありました。

そこで、マウスやキーボードで選択した範囲を読み取り、その範囲で罫線が引かれるよう変更をしていきます。

サンプルコード

以下サンプルコードとなります。
選択範囲の罫線を引く内容となります。

Sub 選択範囲の罫線を引く()
    With Selection
        .Borders.LineStyle = xlContinuous
        .Borders.Weight = xlThin
        .Borders.ColorIndex = xlAutomatic
        .BorderAround xlContinuous, xlThick
    End With
End Sub

実行結果

マウスで範囲選択し、実行してみましょう。

はい、選択範囲に罫線が引かれていますね!

VBAの実装手順

実装手順は以下の通りです。

Excel側にVBAを実装していきます。

①Excelを新規に開き、「開発」タブをクリックし、「VisualBasic」をクリックします。
もしくはショートカットキー「Alt」+「F11」でもOKです。

②標準モジュールを追加します。
左ペインのVBAProjectを右クリックし、「挿入」、「標準モジュール」を選択します。

③右ペインのウインドウに上記のVBAを入力します。

こちらで完了です。

VBAを実行する

では早速VBAの実行をしてみましょう。

①「開発」タブの「VBA」をクリックし実行したいマクロを選択し、「実行」をクリックします。

②処理がされたことが確認できれば完了です。

さいごに

いかがでしょうか。

今回は、

・Excel VBAで罫線を引く方法
・Excel VBAで外枠/内枠指定し罫線を引く方法

についてまとめました。

また、他にも便利な方法がありますので、よろしければご参照頂ければと思います。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA ImageChange Image