Excelで、Deleteキーを押してもセルのデータを削除できないようにする方法です。
Excelファイルを業務アプリとして使い場合などに、うっかり必要なデータを消してしまう事故を回避するために使用することができます。
※データの削除を、マウス操作による「数値と値のクリア」など、意図しない限り行えない方法だけに限定する際などに使用します。
|
|
ExcelのVisual Basic Editorで、標準モジュールを追加し、そこに下記の記述を行います。
|
|
Sub Auto_Open()
'Deleteキーを押したときに、特定の関数を実行
Application.OnKey "{DEL}", "PressDelKey"
End Sub
Sub Auto_Close()
'Deleteキーを押した際の関数実行を中止
Application.OnKey "{DEL}"
End Sub
Private Sub PressDelKey()
'セルを指定している時だけ警告を表示
If UCase$(TypeName(Selection)) = "RANGE" Then
'念のため、シート名を確認のうえ、実行
'全シートで無効にする場合は、この場合分けは不要
If ActiveSheet Is ThisWorkbook.Worksheets("Sheet1") Then
MsgBox "Deleteキーによる削除は無効です。", _
vbInformation
Else
'対象外のシートの場合は、通常のDeleteキーの動作を実行
Call Auto_Close
AppActivate Application.Caption
SendKeys "{DEL}", True
Call Auto_Open
End If
Else
'通常のDeleteキーの動作を実行
Call Auto_Close
AppActivate Application.Caption
SendKeys "{DEL}", True
Call Auto_Open
End If
End Sub
|
|
|
Auto_Open()は、Excelファイルを開いた際に実行されるメソッドです。
この中で、Deleteキーを押した際に実行する関数を指定し、キー操作を無効にしています。
|