更新日:、 作成日:

VBA セルに罫線の色を設定する

はじめに

Excel VBA マクロでセルに罫線の色を設定する方法を紹介します。

Range("B1").Borders または Cells(1, 2).Borders プロパティから、セル「B1」の罫線に色を付けられます。

Border.Color プロパティから、罫線の色を設定できます。

Border.ColorIndex プロパティから、罫線の色を番号で設定できます。

罫線の色を取得するには「セルの罫線の色を取得する」をご覧ください。
セルを範囲指定するすべての方法は「セルを範囲指定して取得する」をご覧ください。

セルに罫線の色を設定する

色は「RGB 関数」で取得した値を設定します。

Range の引数にセル名を指定すると、そのセルに罫線の色を設定できます。

セル「B2」に上下左右の罫線の色を設定するには Range("B2").Borders.Color を入力します。上側の罫線の色を設定するには Range("A1").Borders(xlEdgeTop).Color を入力します。

Range("B2").Borders.Color = RGB(255, 0, 0) ' 上下左右の罫線の色、罫線も引かれる

Range("D2").Borders(xlEdgeTop).Color = RGB(255, 0, 0)      ' 上側の罫線の色、罫線も引かれる
' Range("D2").Borders(xlEdgeBottom).Color = RGB(255, 0, 0) ' 下側の罫線の色、罫線も引かれる
' Range("D2").Borders(xlEdgeLeft).Color = RGB(255, 0, 0)   ' 左側の罫線の色、罫線も引かれる
' Range("D2").Borders(xlEdgeRight).Color = RGB(255, 0, 0)  ' 右側の罫線の色、罫線も引かれる
1

Cells の引数にセルの行と列の番号を指定すると、そのセルに罫線の色を設定できます。

行「2」、列「A」に罫線の色を設定するには Cells(2, 1).Borders.Color を入力します。

Cells(1, 1).Borders.Color = RGB(255, 0, 0) ' A1
Cells(2, 1).Borders.Color = RGB(255, 0, 0) ' A2
Cells(1, 2).Borders.Color = RGB(255, 0, 0) ' B1
Cells(2, 2).Borders.Color = RGB(255, 0, 0) ' B2

色を設定するとき、罫線が引かれていないときは実線が引かれます。

その他の辺の罫線の色を設定するには「セルの罫線について」をご覧ください。

隣接するセルの罫線は同じものです。セル「A1」の下側に罫線を引くと、セル「A2」の上側に罫線が引かれたことになります。

ColorIndex プロパティからも色を設定できます。それぞれの色に対応した数値を設定します。

Range("A1").Borders.ColorIndex = 3 ' 赤
colorindex

セルの範囲に罫線の色を設定する

セルの範囲「B2」~「C3」に罫線の色を設定するには Range("B2:C3").Borders.Color または Range("B2", "C3").Borders.Color のように指定します。

Range("B2:C3").Borders.Color = RGB(255, 0, 0)    ' セル「B2」~「C3」のすべての上下左右の罫線
Range("B2", "C3").Borders.Color = RGB(255, 0, 0) ' セル「B2」~「C3」のすべての上下左右の罫線

Range("E2:F3").Borders(xlEdgeTop).Color = RGB(255, 0, 0)      ' セル「E2」と「F2」の上側の罫線
' Range("E2:F3").Borders(xlEdgeBottom).Color = RGB(255, 0, 0) ' セル「E3」と「F3」の下側の罫線
2

Borders に対して色を設定すると、範囲内の各セルの上下左右のすべてに色が設定されます。罫線が引かれていないときは罫線が引かれます。違う種類の罫線が含まれているときは実線になることがあります。

xlEdgeTop など辺を指定すると、範囲全体のその辺に対して色が設定されます。罫線が引かれていないときは罫線が引かれます。違う類の罫線が含まれているときは実線になることがあります。

別シートのセルに罫線の色を設定する

シートを指定するには Worksheets の引数にシート名またはインデックスを指定します。

Sheet1 を指定するには Worksheets("Sheet1") または Worksheets(1) を入力します。

sheet1
' Sheet1 のセル「A1」に罫線の色を設定
Worksheets("Sheet1").Range("A1").Borders.Color = RGB(255, 0, 0)
Worksheets(1).Range("A1").Borders.Color = RGB(255, 0, 0)

' Sheet2 のセル「A1」に罫線の色を設定
Worksheets("Sheet2").Range("A1").Borders.Color = RGB(255, 0, 0)
Worksheets(2).Range("A1").Borders.Color = RGB(255, 0, 0)

Sheet1 に Range や Cells を入力すると、自身のシートのセルになります。自身を表す Me. が省略されています。

' どちらも同じコード
Range("A1").Value = "Sheet1"
Me.Range("A1").Value = "Sheet1"

標準モジュールに Range や Cells を入力すると、開いているシートのセルになります。アクティブシートを表す ActiveSheet. が省略されています。

' どちらも同じコード
Range("A1").Value = "アクティブ"
ActiveSheet.Range("A1").Value = "アクティブ"