VBAでシートの保護を行う方法についてご説明します。誤ってシートに書き込みが行われないよう保護をかけることはとても大切です。それでは具体的な方法について確認していきましょう。

シートの保護

シートの保護はProtectメソッドにより行います。
<コード>

ActiveSheet.Protect 'アクティブシートを保護'

<実行例>
【VBA入門】シートを保護する方法
シートの編集を行おうとするとメッセージが表示され、シートが保護されているのが分かります。

シートの保護解除

シートの保護を解除する場合はUnprotectメソッドを使用します。
<コード>

ActiveSheet.Unprotect 'アクティブシートの保護を解除'

<実行例>
【VBA入門】シートを保護する方法
シートの編集が可能になりました。

シートにパスワードをかける方法

シートにパスワードを設定する場合はProtectの引数Passwordを設定します。
※ちなみにパスワードは大文字と小文字が区別されます。
<コード>

ActiveSheet.Protect Password:="SamplePass"  'パスワード≪SamplePass≫を設定'

シートのタブを右クリックして「シートの保護を解除」を選択すると、設定したパスワードを入力する画面が表示されます。
<実行例>
【VBA入門】シートを保護する方法
なお、パスワード付きシートの保護をVBAで解除する場合はUnprotectの引数Passwordを設定します。
<コード>

ActiveSheet.Unprotect Password:="SamplePass"  'パスワード≪SamplePass≫で保護解除'

特定のセルの保護を解除

シートに保護をかけたいけれど入力できるセルを残しておきたいというパターンがあります。そんな時は保護をかけたくないセルのロックを解除してからシートに保護をかけるようにしてください。
<コード>

ActiveSheet.Range("C3:C8").Locked = False 'C列の3行目~8行目をロック解除(入力可能に設定)'
ActiveSheet.Protect

<実行例>
【VBA入門】シートを保護する方法

まとめ

シートの保護を行うことは作成したExcelファイルの内容が誤って、上書きされないために非常に重要です。パスワードやロックの解除等と組み合わせてシートの管理にぜひ役立ててください。