pgbigorokuのブログ

プログラムの再利用できそうなコードをアップ

EXCEL VBA 指定行を削除する

'
' 指定行を削除する
'
'
' 引数:pwksTarget 対象シート
'       pintLineNo 削除する行番号
'       pblnEndLineNo (省略可)複数行削除する場合、最終行
' 戻り値:追加した行番号
' https://pgbigoroku.hatenablog.com/entry/2022/12/03/181917
' バージョン 2022/12/3
Private Sub nsubDeleteRow(ByRef pwksTarget As Worksheet, ByVal plngLineNo As Long, Optional ByVal pblnEndLineNo As Long = -1)
    '前処理、現在のアクティブブックを保存する。
    Dim wksActive As Worksheet
    Set wksActive = ActiveSheet
    
    '本処理ここから
    
    pwksTarget.Parent.Activate
    pwksTarget.Select
    
    If pblnEndLineNo <= plngLineNo Then
        pwksTarget.Rows(CStr(plngLineNo) & ":" & CStr(plngLineNo)).Select
    Else
        pwksTarget.Rows(CStr(plngLineNo) & ":" & CStr(pblnEndLineNo)).Select
    End If
    Selection.Delete Shift:=xlUp
    
    '本処理ここまで

    '後処理 処理前のアクディブブックに戻す
    wksActive.Parent.Activate
    wksActive.Select
End Sub