VBA セルの罫線をクリアする

はじめに

Excel VBA マクロでセルの罫線をクリアする方法を紹介します。

Range("B1").Borders または Cells(1, 2).Borders プロパティから、セル「B1」の罫線を消すことができます。

Border.LineStyle プロパティから、罫線の種類をなしにできます。

ClearFormats メソッドから、セルの色や罫線などの書式を削除できます。

その他をクリアするには「セルをクリアする」をご覧ください。
セルを範囲指定するすべての方法は「セルを範囲指定して取得する」をご覧ください。
  • 目次
    • セルの罫線をクリアする
    • セルの範囲の罫線をクリアする
    • 別シートのセルの罫線をクリアする

セルの罫線をクリアする

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

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

Range("B2").Borders.LineStyle = xlLineStyleNone ' 上下左右の罫線を消す

Range("D2").Borders(xlEdgeTop).LineStyle = xlLineStyleNone      ' 上側の罫線を消す
' Range("D2").Borders(xlEdgeBottom).LineStyle = xlLineStyleNone ' 下側の罫線を消す
' Range("D2").Borders(xlEdgeLeft).LineStyle = xlLineStyleNone   ' 左側の罫線を消す
' Range("D2").Borders(xlEdgeRight).LineStyle = xlLineStyleNone  ' 右側の罫線を消す
3

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

行「2」、列「A」の罫線をクリアするには Cells(2, 1).Borders.LineStyle を入力します。

Cells(1, 1).Borders.LineStyle = xlLineStyleNone ' A1
Cells(2, 1).Borders.LineStyle = xlLineStyleNone ' A2
Cells(1, 2).Borders.LineStyle = xlLineStyleNone ' B1
Cells(2, 2).Borders.LineStyle = xlLineStyleNone ' B2
その他の辺の罫線を消すには「セルの罫線について」をご覧ください。

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

ClearFormats メソッドから、セルの色や罫線などの書式をクリアできます。

Range("A2").ClearFormats ' 書式をクリア

セルの範囲の罫線をクリアする

セルの範囲「B2」~「C3」の罫線をクリアするには Range("B2:C3").Borders.LineStyle または Range("B2", "C3").Borders.LineStyle を入力します。

Range("B2:C3").Borders.LineStyle = xlLineStyleNone    ' B2 ~ C3 のすべての上下左右の罫線
Range("B2", "C3").Borders.LineStyle = xlLineStyleNone ' B2 ~ C3 のすべての上下左右の罫線

Range("E2:F3").Borders(xlEdgeTop).LineStyle = xlLineStyleNone         ' E2 と F2 の上側の罫線
' Range("E2:F3").Borders(xlEdgeBottomTop).LineStyle = xlLineStyleNone ' E3 と F3 の下側の罫線
4

Borders に対してクリアすると、範囲内の各セルの上下左右のすべてに罫線がクリアされます。

xlEdgeTop など辺を指定すると、範囲全体のその辺の罫線がクリアされます。

シート全体のセルの罫線をクリアするには Cells.Borders.LineStyle を入力します。

Cells.Borders.LineStyle = xlLineStyleNone ' すべてのセルの罫線を消す
Cells.ClearFormats ' すべてのセルの書式をクリア

別シートのセルの罫線をクリアする

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

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

sheet1
' Sheet1 のセル「A1」の罫線をクリア
Worksheets("Sheet1").Range("A1").Borders.LineStyle = xlLineStyleNone
Worksheets(1).Range("A1").Borders.LineStyle = xlLineStyleNone

' Sheet2 のセル「A1」の罫線をクリア
Worksheets("Sheet2").Range("A1")..Borders.LineStyle = xlLineStyleNone
Worksheets(2).Range("A1")..Borders.LineStyle = xlLineStyleNone

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

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

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

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