シートを保護し使用者の変更を禁止するには、Protectメソッドを使います。保護の解除はUnprotectメソッドを使用します。セルのロックは、RangeオブジェクトのLockedプロパティで設定又は解除します。
Protectメソッドの構文
Object.Protect(Password, DrawingObjects, Contents, Scenarios,UserInterfaceOnly)
- Object - Worksheet, Chartオブジェクト
- Password - (省略可能)パスワードを設定します。保護の解除時に必要です。
- DrawingObjects - (省略可能)描画オブジェクトの保護
- Contents - (省略可能)シートの内容を保護
- Scenarios - (省略可能)シナリオを保護
- UserInterfaceOnly - (省略可能)マクロからの変更は可能にする
シート全体を保護するマクロ
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.