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