例えば以下の表を、
以下のように
・値のクリア
・罫線のクリア
できます!
※見出し行を除いた部分をクリアできます。
VBAコード
ここでは例として、
・シート「sample」のセル「B3」から下の
・値と罫線をクリア
します。
Option Explicit
Sub sample()
Dim ws As Worksheet
Dim startRange As Range
Dim endRow As Double
Dim endColumn As Double
Dim endRange As Range
'対象シートを設定
Set ws = Worksheets("sample")
'開始セルを取得 ※クリア対象範囲の1番左上のセル
Set startRange = ws.Range("B3")
'最終行を取得(下から上へ見ていく)
endRow = ws.Cells(Rows.Count, startRange.Column).End(xlUp).Row
'最終列を取得
endColumn = startRange.End(xlToRight).Column
'最終セルを取得
Set endRange = ws.Cells(endRow, endColumn)
'最終セルが開始セルと同じかそれ以降である場合のみクリア
If (startRange.Row <= endRange.Row) Then
'表全体
With Range(startRange, endRange)
'値をクリア
.Value = ""
'罫線をクリア
.Borders.LineStyle = xlLineStyleNone
End With
End If
End Sub
実行結果
表全体をクリアできました。
参考①
可読性が良いとは思わないためオススメはしませんが、以下でも表全体(見出し行除く)をクリアできます。
オススメはしないものの簡易な記載で実現可能のため、紹介だけしておきます。
Option Explicit
Sub sample()
With Worksheets("sample").Range("B2").CurrentRegion
'値をクリア(見出しである最初の行を除く)
.Resize(.Rows.Count - 1).Offset(1, 0).Value = ""
'罫線をクリア(見出しである最初の行を除く)
.Resize(.Rows.Count - 1).Offset(1, 0).Borders.LineStyle = xlLineStyleNone
End With
End Sub
ポイント
「CurrentRegion」と「Resize」と「Offset」を使用する。
参考②
表全体を整形する方法は、以下の記事をご確認ください。
参考③
上記のVBAコードで使用した以下の詳細は、公式サイトをご確認ください。
●「Rangeオブジェクト」の「Value」プロパティ
●「Rangeオブジェクト」の「Borders」プロパティ
●「Bordersオブジェクト」の「LineStyle」プロパティ
●「xlLineStyleNone:線無し」 ※列挙体「XlLineStyle」