Excel VBA セルに罫線を設定する

スポンサーリンク

セルに罫線【けいせん】を設定する方法

VBAで罫線を扱うには、Border【ボーダー】オブジェクトが持つ各種のプロパティで線のスタイルや太さ、色などを設定します。

また、Range【レンジ】オブジェクトのBorderaround【ボダーアラウンド】メソッドを使用すると
セル範囲の外枠の線の種類や太さ、色を一度に設定できます。

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

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

Border【ボーダー】オブジェクトを取得するには、Borders【ボーダーズ】プロパティで対象となる罫線の位置を引数で参照する必要があります。Borders【ボーダーズ】プロパティで引数を省略した場合は、すべての罫線を表すBorders【ボーダーズ】コレクションが取得されます。

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

[]内は省略可能です。
オブジェクト.Borders( [Index] )

  • オブジェクト(必須)
    罫線を設定するセル、またはセル範囲をRange【レンジ】オブジェクトを指定します。
  • Index【インデックス】(省略可)
    参照する罫線の位置をxlBordersIndex列挙型の定数、または値で指定します。
xlBordersIndex列挙型
定数 内容
xlEdgeTop【エッジトップ】 8 上端の横線
xlEdgeBottom【エッジボトム】 9 下端の横線
xlEdgeLeft【エッジレフト】 7 左端の縦線
xlEdgeRight【エッジライト】 10 右端の縦線
xlInsideHorizontal【インサイドホリゾンタル】 12 選択範囲内の内側の水平(横)線
xlInsideVertical【インサイドバーティカル】 11 選択範囲内の内側の垂直(縦)線
xlDiagonalDown【ダイアゴナルダウン】 5 各セルの左上隅から右下への罫線
xlDiagonalUp【ダイアゴナルアップ】 6 各セルの左下隅から右上への罫線

※右下がりの斜線と右上がりの斜線は、単一セルが対象です。複数のセルを選択した場合は、それぞれのセルに斜線が引かれます。複数のセルをまたがって斜線を引く場合はShape(図形)の直線を使用します。


罫線を設定するBorderオブジェクトのプロパティ一覧

プロパティ 内容
LineStyle【ラインスタイル】 罫線の種類を設定します。種類は8種類あります。
Weight【ウエイト】 罫線の太さを設定します。種類は4種類あります。
Color【カラー】
ColorIndex【カラーインデックス】
罫線に色を設定します。

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

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

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

オブジェクト.LineStyle = 設定値

  • オブジェクト(必須)
    Border【ボーダー】オブジェクトまたは、Borders【ボーダーズ】コレクションを指定します。
  • 設定値(必須)
    罫線の種類をxlLineStyle列挙型の定数で指定します。オブジェクトがBordes【ボーダーズ】コレクションの場合は選択範囲のセルの4辺が対象になります。
xlLineStyle列挙型の定数
定数 内容
xlContinuous【コンテュニアス】
または、True
1 実線
xlDash【ダッシュ】 -4115 破線
xlDashDot【ダッシュドット】 4 一点鎖線
xlDashDotDot【ダッシュドットドット】 5 ニ点鎖線
xlDot【ドット】 -4118 点線
xlDouble【ダブル】 -4119 二重線
xlSlantDashDot【スラントダッシュドット】 13 斜め破線
xlLineStyleNone【ラインスタイルナム】
または、False
-4142 線なし

指定したセル4辺に罫線を設定するコード例

Sub 罫線()
Range("B2").Value = "実線"
Range("B2").Borders.LineStyle = True
Range("B4").Value = "破線"
Range("B4").Borders.LineStyle = xlDash
Range("B6").Value = "一点鎖線"
Range("B6").Borders.LineStyle = xlDashDot
Range("B8").Value = "二点鎖線"
Range("B8").Borders.LineStyle = xlDashDotDot
Range("B10").Value = "点線"
Range("B10").Borders.LineStyle = xlDot
Range("B12").Value = "二重線"
Range("B12").Borders.LineStyle = xlDouble
Range("B14").Value = "斜め破線"
Range("B14").Borders.LineStyle = xlSlantDashDot
Range("B16").Value = "線なし"
Range("B16").Borders.LineStyle = False
End Sub

実行結果


Weight【ウエイト】プロパティ

罫線の太さを設定するには、Border【ボーダー】オブジェクトのWeight【ウエイト】プロパティを使用します。

Weight【ウエイト】プロパティの書式と設定値の説明

オブジェクト.Weight = 設定値

  • オブジェクト(必須)
    Border【ボーダー】オブジェクトまたは、Borders【ボダーズ】コレクションを指定します。
  • 設定値(必須)
    罫線の太さをxlBorderWeight列挙型の定数で指定します。
xlBorderWeight列挙型の定数
定数 内容
xlHairline【ヘアライン】 1 極細線
xlThin【スイン】 2 細線(既定値)
xlMedium【ミディアム】 -4138 中線
xlThick【シック】 4 太線

実線の太さを変更するコード例

Sub 罫線太さ()
Range("B2").Value = "極細線"
With Range("B2").Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlHairline
End With
Range("B3").Value = "細線"
With Range("B3").Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
End With
Range("B4").Value = "中線"
With Range("B4").Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlMedium
End With
Range("B5").Value = "太線"
With Range("B5").Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThick
End With
End Sub

実行結果


※線の種類と太さの組み合わせにより、一方の設定が無効になる場合があります。設定できる組み合わせは、「セルの書式設定」ダイアログボックスの「罫線」タブの「線」「スタイル」リストにある組み合わせになります。



Color【カラー】ColorIndex【カラーインデックス】プロパティ

罫線に色を設定するには、Border【ボーダー】オブジェクトのColor【カラー】プロパティまたは、ColorIndex【カラーインデックス】プロパティを使用します。値の取得と設定ができます。

Color、ColorIndex、プロパティの書式と設定値の説明

オブジェクト.Color = RGB値
オブジェクト.ColorIndex = カラー番号

  • オブジェクト(必須)
    Border【ボーダー】オブジェクトまたは、Borders【ボーダーズ】コレクションを指定します。
  • RGB値(必須)
    RGB関数を使用して色を指定します。
  • カラー番号(必須)
    56色の色を番号で指定します。

B2セルを赤い太線で囲むコード例

Sub 線色()
With Range("B2").Borders
.LineStyle = True
.Weight = xlThick
.Color = RGB(255, 0, 0)
End With
End Sub

実行結果


BorderAround【ボダーアラウンド】メソッド

セル範囲の周囲(外枠)に線の種類や太さ、色を一度に指定して罫線を引くには、Range【レンジ】オブジェクトのBorderAround【ボダーアラウンド】メソッドを使用します。

BorderAround【ボダーアラウンド】メソッドの書式と設定値の説明

[]内は省略可能です。
オブジェクト.BorderAround( [LineStyle, Weight, ColorIndex, Color] )

  • オブジェクト(必須)
    外枠の線を設定するセルやセル範囲をRange【レンジ】オブジェクトで指定します。
  • LineStyle【ラインスタイル】(省略可)
    線の種類をxlBoderStyle列挙型の定数で指定します。
  • Weight【ウエイト】(省略可)
    線の太さをxlBorderWeight列挙型の定数で指定します。
  • ColorIndex【カラーインデックス】(省略可)
    線の色をxlColorIndex列挙型の定数または、56色カラーパレットの番号を指定します。
    引数Colorと同時に設定することはできません。
  • Color【カラー】(省略可)
    線の色をRGB関数で指定します。引数ColorIndexと同時に指定することはできません。

B2セルから始まる表範囲に罫線と外枠に赤の2重罫線B2セルに斜線を引くコード例

Sub 表範囲罫線()
With Range("B2").CurrentRegion
.Borders.LineStyle = True
.BorderAround LineStyle:=xlDouble, Color:=RGB(255, 0, 0)
End With
Range("B2").Borders(xlDiagonalDown).LineStyle = True
End Sub

実行前

実行後


罫線を消去する方法

罫線を消去するには、LineStyle【ラインスタイル】プロパティにxlLinestyleNoneまたはFalseを指定します。例えば、アクティブシートのすべての罫線を消去する場合は【 Cells.Borders.LineStyle = False 】と記述します。
このコードでは斜線は消去されないため斜線を消去するには
【 Cells.Borders(xlDiagonalDown).LineStyle = False 】
【 Cells.Borders(xlDiagonalUp).LineStyle = False 】
を別途記述する必要があります。

上記の表範囲の罫線をすべて消去するコード例

Sub 罫線削除()
Range("B2").CurrentRegion.Borders.LineStyle = False
Range("B2").Borders(xlDiagonalDown).LineStyle = False
End Sub

実行結果


以上で、セルに罫線を設定するについての解説を終了します。ありがとうございました。

スポンサーリンク

関連記事・広告