シートを保護し使用者の変更を禁止するには、Protectメソッドを使います。保護の解除はUnprotectメソッドを使用します。セルのロックは、RangeオブジェクトのLockedプロパティで設定又は解除します。


Protectメソッドの構文

Object.Protect(Password, DrawingObjects, Contents, Scenarios,UserInterfaceOnly)

シート全体を保護するマクロ

VBA入力画面
VBAプログラム入力画面

入力したコードです。

Sub ワークシートの保護()

On Error GoTo エラー処理
    ActiveSheet.Unprotect
    Cells.Select
    Selection.Locked = True
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    Range("A1").Select
    Exit Sub

エラー処理:
    MsgBox "保護実行中にエラーが発生しました。" + vbCrLf + Err.Description
End Sub

プログラムの説明


Subプロシージャの宣言
Sub ワークシートの保護()
エラーが発生した場合は、エラー処理のラベル位置に移動します(エラーについてはエラー処理を参照してください)
On Error GoTo エラー処理
念のためシートの保護を解除します
ActiveSheet.Unprotect
全部のセルを選択します
Cells.Select
選択範囲の編集をロックします
Selection.Locked = True
保護を実行します
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
A1セルを選択します
Range("A1").Select
プロシージャの終了
Exit Sub
エラー ラベル
エラー処理:
エラーメッセージとエラー内容を表示させます
MsgBox "保護実行中にエラーが発生しました。" + vbCrLf + Err.Description
プロシージャの終了
End Sub

シートを保護するマクロの実行画面

ワークシートの保護マクロを実行します。
シート保護のマクロを実行

ワークシートの保護マクロを実行後、セルを編集しようとすると「変更しようとしているセルまたはグラフは保護されているため、読み取り専用となっています。保護されているセルまたはグラフを変更するには、[校閲]タブをクリックし、[変更]グループの[シート保護の解除]をクリックして保護を解除します。パスワードの入力を要求されることもあります。」とメッセージが表示されできなくなっています。
保護シートに入力しようとするとエラーが発生

Excelマクロのサンプルファイル:フリーダウンロード








Copyright (C) excel.usefulhp.com All rights reserved.