Excel2000 VBA 範囲指定した範囲のみに入力出来るようにし、保護セルは選択出来なくする [Excel2000 VBA独習]
Excel2000 VBA 範囲指定した範囲のみに入力出来るようにし、保護セルは選択出来なくする
マクロを作った理由
ちょとだけ、入力作業を他の人に依頼する時、他のセルをいじられたくないから。
依頼する事はめったにないけど、作っておくと便利かな程度の物。
選択できなくしたセルを選択するには、シート保護を解除する。
注意点、次回開いた時には従来通りセル選択はできてしまうので、毎回この状態を再現するのであればスタートアップのマクロを記述する必要があり。
Sub auto_open() ’サンプル
'保護を有効にする
Worksheets("sheet1").Protect UserInterfaceOnly:=True ’シート名指定
' 保護(ロック)されたセルは選択不可にする
Worksheets("sheet1").EnableSelection = xlUnlockedCells
End Sub
Sub 選択範囲の入力を許可しロックセルの選択を不可にする()
'
'InputBoxで入力を許可する範囲を指定し保護(ロック)を解除と背景色設定
'保護(ロック)されたセルは選択不可にする
Dim myInbox, cel As Range
'エラーinputboxデcancelが押されたら
On Error GoTo cancel
'シートの保護解除
ActiveSheet.Unprotect
'範囲取得
Set myInbox = Application.InputBox("入力を許可する範囲を選択してください", "選択範囲のみ入力出来るようにする。", Type:=8)
'範囲のロック解除と背景色設定
For Each cel In myInbox
cel.Locked = False
'cel.Interior.Color = RGB(208, 208, 255)
cel.Interior.ColorIndex = 20
Next
'保護を有効にする
ActiveSheet.Protect UserInterfaceOnly:=True
' 保護(ロック)されたセルは選択不可にする
ActiveSheet.EnableSelection = xlUnlockedCells '
cancel:
Set myInbox = Nothing
End Sub
コメント 0