セルに罫線【けいせん】を設定する方法
VBAで罫線を扱うには、Border【ボーダー】オブジェクトが持つ各種のプロパティで線のスタイルや太さ、色などを設定します。
また、Range【レンジ】オブジェクトのBorderaround【ボダーアラウンド】メソッドを使用すると
セル範囲の外枠の線の種類や太さ、色を一度に設定できます。
Borders【ボーダーズ】プロパティ
セルの上下左右、斜めに設定されている罫線を表すBorder【ボーダー】オブジェクトを取得するには、Range【レンジ】オブジェクトのBorders【ボーダーズ】プロパティを使用します。
Border【ボーダー】オブジェクトを取得するには、Borders【ボーダーズ】プロパティで対象となる罫線の位置を引数で参照する必要があります。Borders【ボーダーズ】プロパティで引数を省略した場合は、すべての罫線を表すBorders【ボーダーズ】コレクションが取得されます。
Borders【ボーダーズ】プロパティの書式と設定値(引数)の説明
[]内は省略可能です。
オブジェクト.Borders( [Index] )
- オブジェクト(必須)
罫線を設定するセル、またはセル範囲をRange【レンジ】オブジェクトを指定します。 - Index【インデックス】(省略可)
参照する罫線の位置を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辺が対象になります。
定数 | 値 | 内容 |
---|---|---|
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列挙型の定数で指定します。
定数 | 値 | 内容 |
---|---|---|
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 = カラー番号
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
実行結果
以上で、セルに罫線を設定するについての解説を終了します。ありがとうございました。