【VBA】ワークシートの不要なセル(右下)を消す

このコードに関連して、不要なセルを消すコードになります。

この印刷範囲の右側と下側が不要になる場合が多いと思います。

この場合はH32以降のセルを消します。

Sub ClearOutsideRangeByParameters(sheetName As String, targetRow As Long, targetColumn As Long)
    
    Dim ws As Worksheet
    On Error Resume Next
    Set ws = ThisWorkbook.Sheets(sheetName)
    On Error GoTo 0
    
    If ws Is Nothing Then
        MsgBox "指定されたシートが見つかりません: " & sheetName, vbExclamation
        Exit Sub
    End If

    Application.ScreenUpdating = False

    ' ターゲット列以降の列を削除
    If targetColumn < ws.Columns.Count Then
        ws.Range(ws.Cells(1, targetColumn + 1), ws.Cells(ws.Rows.Count, ws.Columns.Count)).ClearContents
    End If

    ' ターゲット行以降の行を削除
    If targetRow < ws.Rows.Count Then
        ws.Range(ws.Cells(targetRow + 1, 1), ws.Cells(ws.Rows.Count, ws.Columns.Count)).ClearContents
    End If

    Application.ScreenUpdating = True

    MsgBox "指定範囲外の内容をクリアしました。"
    
End Sub


Sub RunClearOutsideRange()

    ClearOutsideRangeByParameters "Sheet1", 32, 8
    
End Sub

ws.Columns.Countではエクセルの列の右端、ws.Columns.Rowsでは行の下端を取得しています。

その列、行以降をすべて消す。という処理をしています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA