複数のワークシート内に点在するセルのデータを消去したい場合があります。

そんな時、VBAのプログラム内で、セルを指定してクリアする処理を沢山書く必要はありません。
後でセルの位置が変更になったり、増えたり、減ったりという場合に、いちいちプログラムを見直すだけで大変です。

そこで、ワークシート内に、消去したいシート名と、セル範囲(レンジ)の管理表を作ってしまいます。
その表を元に、下のプログラムを実行するだけで済みます。

vbaで消去

-----------------------------------------

'管理表のあるワークシート名「Work」を変数に入れる
'シート名が変わった時に、ここだけ直せば済む
Public Const ShtWork As String = "Work"

Sub All_DataClear()
    Dim i As Long, lngLastRow As Long
    Dim strMySheet As String, strMyRange As String
    
    '画面の動きを止めておく
    Application.ScreenUpdating = False
    
    'データ消去表の最終行を求める
    lngLastRow = Sheets(ShtWork).Cells(Rows.Count, "H").End(xlUp).Row
    
    '5行目から最終行まで処理を繰り返す
    For i = 5 To lngLastRow
    
        'シート名の取得
        strMySheet = Sheets(ShtWork).Cells(i, "H").Value
        
        '消去するレンジを取得
        strMyRange = Sheets(ShtWork).Cells(i, "I").Value
    
        '取得したシートのレンジをクリアする
        Sheets(strMySheet).Unprotect
        Sheets(strMySheet).Select
        Sheets(strMySheet).Range(strMyRange).Select
        Selection.ClearContents
    
    Next i
    
End Sub