【エクセルマクロ】行削除を禁止する:イベントプロシージャ

ExcelVBA-行削除禁止-アイキャッチ ExcelVBA

エクセルマクロで、行削除を禁止するVBAコードをご紹介します。

このページのマクロコードは、コピペで使えます。
ぜひお試しください!

行削除を禁止する

以下のマクロを実行すると、行の削除を出来なくします。


Dim myRow As Long
Dim TargetRow As Long
Dim Cnt As Long

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    '変更前の最終行を取得
    TargetRow = Cells(Rows.Count, 1).End(xlUp).Row

End Sub

Private Sub Worksheet_Change(ByVal Target As Range)

    If Cnt = 1 Then
        MsgBox "行削除は禁止です"
        End
    Else
        Cnt = 0
    End If

    '変更後の最終行を取得
    myRow = Cells(Rows.Count, 1).End(xlUp).Row
    
    If myRow < TargetRow Then
        Cnt = Cnt + 1
        Application.Undo
    End If

End Sub

 

行を削除しようとした時

4行目を選択して、右クリックメニューから「削除」を選択します。


 

メッセージボックスが表示され、行の削除ができない状態となります。


 
 

マクロコードを記述する場所は?

「Sheet1」シート内でイベントを発生させるためには、

VBE画面にて「Sheet1」シートにマクロコードを記述します。


 
この記事がお役に立ちますと幸いです。
 

「プログラマーの本気がExcelを覚醒させる 超絶ExcelVBA」
ExcelVBAでワンランクアップできる書籍
具体的で応用が利く技をたくさん掲載