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
実行結果
実行してみましょう。
はい、こちらも指定範囲の外枠に罫線が引かれていますね!

自由に選択した範囲の罫線を引く
おまけに自由に選択した範囲の罫線を引く内容について説明をしたいと思います。
これまでは単体のセルや複数セルを指定した範囲に罫線を引いていましたが、別の範囲に罫線を引く場合、いちいち設定値を変える必要がありました。
そこで、マウスやキーボードで選択した範囲を読み取り、その範囲で罫線が引かれるよう変更をしていきます。
サンプルコード
以下サンプルコードとなります。
選択範囲の罫線を引く内容となります。
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で外枠/内枠指定し罫線を引く方法
についてまとめました。
また、他にも便利な方法がありますので、よろしければご参照頂ければと思います。













コメントを残す