VocExcel(単語帳) / VBA Tips
 
 [Key] エクセル / Excel / VBA /マクロ


<--- 戻る

選択している行を削除 (複数行も可)

サンプルファイル






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



--