Excel VBA 表の範囲に罫線をひく

スポンサーリンク

セルやセル範囲に格子罫線をひく方法

セルに罫線(けいせん)を引く操作をマクロ記録すると膨大なコードが生成されます。手動で罫線を設定するとき、わかるように罫線はセルの4辺を別々に設定できます。また、複数のセルに罫線を引く場合は外枠と内側が区別されます。さらに、セル内には斜めに罫線を引くこともできます。このように、セルの罫線は多くのパーツから構成されているのでマクロ記録では、そのすべての設定値が記録されてしまい、膨大なコードになります。

セルの罫線は Border【ボーダー】オブジェクトで表され、Range【レンジ】オブジェクトのBorders【ボーダーズ】プロパティによって呼び出されます。

Borders【ボーダーズ】プロパティ

セルの上下左右に設定されている罫線を表すBorder【ボーダー】オブジェクトを参照するには、Range【レンジ】オブジェクトの
Borders【ボーダーズ】プロパティを使用します。

Borders【ボーダーズ】プロパティの書式と設定値(引数)の説明

[]内は省略可能です。
オブジェクト.Borders[(罫線の位置)]

  • オブジェクト(必須)
    罫線を参照するセルまたは、セル範囲をRange【レンジ】オブジェクトで指定します。
  • 罫線の位置(省略可)
    参照する罫線の位置をXlBordersIndex列挙型の定数で指定します。
    省略した場合は、Borders【ボーダース】コレクションを参照します。Borders【ボーダース】コレクションは、指定したセルやセル範囲の水平と垂直の罫線を参照します。

    XlBordersIndex列挙型
    定数内容
    xlEdgeTop範囲内の上側の罫線
    xlEdgeBottom範囲内の下側の罫線
    xlEdgeLeft範囲内の左端の罫線
    xlEdgeRight範囲内の右端の罫線
    xlInsideHorizontal範囲内のすべてのセルの水平罫線
    xlInsideVertica範囲内のすべてのセルの垂直罫線
    xlDiagonalDown右下がりの斜線
    xlDiagonalUp右上がりの斜線

LineStyle【ラインスタイル】プロパティ

罫線の種類を設定するにはBorder【ボーダー】オブジェクトのLineStyle【ラインスタイル】プロパティを使用します。設定値の取得と設定ができます。

LineStyle【ラインスタイル】プロパティの書式と設定値の説明

【取得】
オブジェクト.LineStyle
【設定】
オブジェクト.LineStyle = 設定値

  • オブジェクト(必須)
    罫線を表すBorder【ボーダー】オブジェクトまたは、Borders【ボーダーズ】コレクションを指定します。
  • 設定値(必須)
    罫線の種類をXlLineStyle列挙型の定数で指定します。または、「True」を指定すると実線が設定され「False」を設定すると罫線が削除されます。

    XlLineStyle列挙型
    定数内容
    xlContinuous実線
    xlDash破線
    xlDashDot一点鎖線
    xlDashDotDotニ点鎖線
    xlDot点線
    xlDouble2 本線
    xlSlantDashDot斜破線
    xlLineStyleNone線なし

※罫線を削除する場合は、LineStyle【ラインスタイル】プロパティに定数のxlLineStyleNoneまたはFalseを設定します。


B2セルに罫線を引くコード

Sub 罫線()
    Range("B2").Borders.LineStyle = xlContinuous
End Sub

このコードでA1セルの4辺に罫線を引けますがもっと簡単な方法があります。

Sub 罫線2()
    Range("B2").Borders.LineStyle = True
End Sub

LineStyleの値をTrue(トウルー)にするだけで罫線が引けます。値をFalse(フォールス)にすると罫線を消せます。

実行結果

データ範囲に格子罫線をひくコード

Sub 罫線3()
 Range("A1").CurrentRegion.Borders.LineStyle = True
End Sub

A1セルから表が始まっている場合のコードです。Range【レンジ】オブジェクトのCurrentRegion【カレントリジョン】プロパティで表の固まりを選択しています表の途中に空白行や空白列があると、そこまでの選択範囲になります。

実行結果

Sub 罫線4()
   Dim 最終行 As Integer
   Dim 最終列 As Integer
   最終行 = Cells(Rows.Count, 1).End(xlUp).Row
   最終列 = Cells(1, Columns.Count).End(xlToLeft).Column
   Range(Cells(1, 1), Cells(最終行, 最終列)).Borders.LineStyle = True
End Sub

このコードならデータに空白行や列があってもデータ範囲に罫線が引けます。

実行結果


以上で、表の範囲に罫線をひくについての解説を終了します。
ありがとうございました。

スポンサーリンク

関連記事・広告