Excel VBA:シートの保護と一部解除方法|ProtectメソッドとUnprotectメソッドを使用

一部保護を解除し残りのセル全体を保護するVBAを掲載しています。



Homeに戻る > Excel シートのTipsへ

Excel VBAでシートを保護するには、Protectメソッドを使用します。
保護を解除するには、Unprotectメソッドを使用します。
Protectメソッドを実行すると、入力欄も編集できなくなるのでセルを指定し、Locked = False を実行します。
ここでは製品一覧表を作成し、単価の入力欄のみ入力できるようにし、後のセルは全て保護します。
これで誤って製品名を消してしまったりすることを防止できます。
関連する「ブックを保護する/ブックの保護を解除する」も掲載していますので、参考にしてください。



Excel実行シート画面

シートに「保護する」「保護を解除する」の2個のコマンドボタンと、製品一覧表を作成しています。
「保護する」ボタンをクリックすると、単価の入力セル以外を保護します。
VBAはコマンドボタンのクリックイベントに記述しています。

シートを保護したシート

■保護したセルに入力しようとすると、下図のエラーが発生します。

「変更しようとしているセルまたはグラフは保護されているため、読み取り専用になっています。 保護されているセルまたはグラフを変更するには、[校閲]タブをクリックし、[変更]グループの[シート保護の解除]をクリックして保護を解除します。 パスワードの入力を要求されることもあります。」

エラーダイアログ


Excel VBA実行コード

CommandButton1が「保護する」ボタンで、CommandButton2が「保護を解除する」ボタンです。 それぞれクリックイベントにVBAを記述しています。

Option Explicit

Private Sub CommandButton1_Click()
    
On Error Resume Next
    '単価欄は編集可能にする
    Range("F3:F8").Locked = False
    
    'Sheet1を保護する
    Worksheets("Sheet1").Protect

End Sub

Private Sub CommandButton2_Click()

    'Sheet1の保護を解除する
    Worksheets("Sheet1").Unprotect

End Sub



Homeに戻る > Excel シートのTipsへ

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved