削除確認が2回ある行削除マクロ

を作りました。

 

動きとしてはこんな感じです。

f:id:zizamo2193:20170510212346p:plain

 

f:id:zizamo2193:20170510212353p:plain

 

f:id:zizamo2193:20170510212358p:plain

 

f:id:zizamo2193:20170510212403p:plain

 

f:id:zizamo2193:20170510212411p:plain

 

ソースは下記の通りです。

 

-------

Sub 行削除()
Dim DelFlg_1 As Integer
Dim DelFlg_2 As Integer
Dim ColNo As Integer
'削除確認(1回目)
DelFlg_1 = MsgBox("削除しますか?", vbYesNo + vbExclamation + vbDefaultButton2, "削除確認")
If DelFlg_1 = vbYes Then
    '1回目応答が「はい」の時、削除確認(1回目)
    DelFlg_2 = MsgBox("本当に削除しますか?", vbYesNo + vbExclamation + vbDefaultButton2, "削除確認")
    If DelFlg_2 = vbYes Then
   
        'シート選択
        Worksheets("xxx").Select
   
        '現在選択しているセル位置を取得
        ColNo = ActiveCell.Row
       
        '行削除
        ActiveSheet.Cells(ColNo, 1).Select
        Selection.Value = ""
        ActiveSheet.Cells(ColNo, 2).Select
        Selection.Value = ""
        ActiveSheet.Cells(ColNo, 3).Select
        Selection.Value = ""
        ActiveSheet.Cells(ColNo, 4).Select
        Selection.Value = ""
       
        MsgBox "削除しました。"
    End If
End If
End Sub

 

-------

 

シートは現在Activeのものを使用しないのにセルだけActiveのものを使用するというのが変な感じです。

 

Activeなシート、セルを利用するマクロは、Activeな対象に対する操作であることが直感的にわかりやすい、ショートカットキーで使うのが適切だと思います。エクセルの外でも使えれば可能性が広がりそうな感じがします。