セルやセル範囲に格子罫線をひく方法
セルに罫線(けいせん)を引く操作をマクロ記録すると膨大なコードが生成されます。手動で罫線を設定するとき、わかるように罫線はセルの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 点線 xlDouble 2 本線 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
このコードならデータに空白行や列があってもデータ範囲に罫線が引けます。
実行結果
以上で、表の範囲に罫線をひくについての解説を終了します。
ありがとうございました。