サイトについて      連絡先   検索

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

はじめに

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

Range.Borders プロパティまたは Cells.Borders プロパティから罫線を取得できます。

Borders.Color プロパティで罫線の色を設定できます。

  • 目次
    • 罫線について
    • セルに罫線の色を設定する
    • セルの範囲に罫線の色を設定する
    • 指定したシートのセルに罫線の色を設定する

罫線について

罫線を操作する基本について、先に「セルの罫線について」をご覧ください。

Border や Borders、xlEdgeTop とは何かについて紹介しています。

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

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

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

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


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

Range("D2").Borders(xlEdgeTop).LineStyle = xlContinuous ' 先に罫線を引く
Range("D2").Borders(xlEdgeTop).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

xlEdgeTop などの辺を指定しないときは上下左右に、指定したときはその辺に罫線が引かれていないときは実線が引かれます。

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


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

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

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


Range("B2:C3").Borders.Color = RGB(255, 0, 0)
Range("B2", "C3").Borders.Color = RGB(255, 0, 0)

Range("E2:F3").Borders(xlEdgeTop).LineStyle = xlContinuous
Range("E2:F3").Borders(xlEdgeTop).Color = RGB(255, 0, 0)
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 = "アクティブ"
  • 目次
    • 罫線について
    • セルに罫線の色を設定する
    • セルの範囲に罫線の色を設定する
    • 指定したシートのセルに罫線の色を設定する