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

ExcelVBA-行追加禁止-アイキャッチ エクセルマクロで効率化する

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

1行のみ、または複数行の追加も禁止します。

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

行追加を禁止する

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


Dim myRow As Long
Dim TargetRow As Long
Dim DeleteNum 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)

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

    '行削除の数
    DeleteNum = myRow - TargetRow

    If myRow > TargetRow Then
        Rows(Target.Row & ":" & Target.Row + DeleteNum - 1).Delete
        MsgBox "行挿入は禁止です"
    End If

End Sub

 

行を挿入しようとした時

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


 

メッセージボックスが表示され、行の追加ができなくなります。


 
 

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

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

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


 

※判定方法は最終行が増えたかどうかでチェックし、

 増えていれば「行を挿入しようとした」という判定をしています。

 簡易的なチェックに役立ちますと幸いです。
 

【エクセルマクロ】ワークシート処理を自動化する:超便利29選
...