サンプルファイル
Private Sub delRow()
'===========================================
' 削除
'===========================================
Dim topRow As Long
Dim LastRow As Long
Dim slctRow As String
Dim myShtTT_A
Dim myShtTT_B
Dim myDataRow As Long
myShtTT_A = ActiveSheet.Name
myShtTT_B = "入力" '「入力」というシート名だけ動作するようにする
myDataRow = "11" 'データの開始行 (見出しの次の行)
If myShtTT_A = myShtTT_B Then
'選択範囲の先頭、最終行を取得
topRow = Selection.Row
LastRow = Selection.Rows(Selection.Rows.Count).Row
slctRow = topRow & ":" & LastRow
If Selection.Rows.Count >= 2 Then '2行以上、選択されていたら
'-------------
'複数行削除
'-------------
Rows(slctRow).Select
If MsgBox("選択行を削除します。", vbOKCancel) = vbOK Then
If topRow >= myDataRow And LastRow >= myDataRow Then
Rows(slctRow).Select
Selection.Delete Shift:=xlUp
Else
MsgBox "選択行では削除できません。"
End If
End If
Else
'-------------
'1行削除
'-------------
If ActiveCell.Row >= myDataRow Then
ActiveCell.Rows.EntireRow.Select
If MsgBox("選択行を削除します。", vbOKCancel) = vbOK Then
'削除行を選択
Rows(ActiveCell.Row).Select
Selection.Delete Shift:=xlUp
End If
End If
End If
Else
MsgBox "このシートでは、削除できません。"
End If
End Sub
|