ワークブックを保護する方法です。ブックを保護すると、シートの挿入・削除、ウィンドウサイズの変更ができなくなります。
保護には.Protectメソッド、解除にはUnprotectメソッドを使います。
ブックを保護するマクロ
■構文:ブックオブジェクト.Protect(Password, Structure, Windows)
引数の説明 (引数とは、関数に渡すパラメータ[括弧内の変数]です)
- Password : (省略可) パスワードを設定します。
- Structure : (省略可) Trueに設定するとシートの挿入や削除ができなくなります。既定値は、False
- Windows : (省略可) Trueに設定するとウィンドウサイズの変更ができなくなります。既定値は、False
■構文:ブックオブジェクト.Unprotect(Password)
引数の説明 (引数とは、関数に渡すパラメータ[括弧内の変数]です)
- Password : (省略可) 保護時のパスワードを設定します。
VBA入力画面
入力したコードです。
Sub ブックを保護()
Dim sfina As String
On Error GoTo エラー処理
sfina = ThisWorkbook.Name
Workbooks(sfina).Activate
ActiveWorkbook.Protect Structure:=True, Windows:=True
Exit Sub
エラー処理:
MsgBox "ブックの保護実行中にエラーが発生しました。" + vbCrLf + Err.Description
End Sub
Sub ブックの保護を解除()
Dim sfina As String
On Error GoTo エラー処理
sfina = ThisWorkbook.Name
Workbooks(sfina).Activate
ActiveWorkbook.Unprotect
Exit Sub
エラー処理:
MsgBox "ブックの保護解除中にエラーが発生しました。" + vbCrLf + Err.Description
End Sub
プログラムの説明
Subプロシージャの宣言
Sub ブックを保護()
文字型の変数を宣言
Dim sfina As String
エラーが発生した場合は、エラー処理ラベルに移動
On Error GoTo エラー処理
現在使用しているワークブックのファイル名を取得
sfina = ThisWorkbook.Name
ブックをアクティブにします(sfinaを変更すると別のブック名を保護できます)
Workbooks(sfina).Activate
ブックを保護します
ActiveWorkbook.Protect Structure:=True, Windows:=True
プロシージャの終了
Exit Sub
エラー ラベル
エラー処理:
エラーメッセージとエラー内容を表示します
MsgBox "ブックの保護実行中にエラーが発生しました。" + vbCrLf + Err.Description
プロシージャの終了
End Sub
Subプロシージャの宣言
Sub ブックの保護を解除()
文字型の変数を宣言
Dim sfina As String
エラーが発生した場合は、エラー処理ラベルに移動
On Error GoTo エラー処理
現在使用しているワークブックのファイル名を取得
sfina = ThisWorkbook.Name
ブックをアクティブにします
Workbooks(sfina).Activate
ブックの保護を解除します
ActiveWorkbook.Unprotect
プロシージャの終了
Exit Sub
エラー ラベル
エラー処理:
エラーメッセージとエラー内容を表示します
MsgBox "ブックの保護解除中にエラーが発生しました。" + vbCrLf + Err.Description
プロシージャの終了
End Sub
ブックを保護するマクロの実行画面
保護実行前の画面です。
ウィンドウの最小ボタン、元に戻すボタンが表示されています。
シート名を右クリックすると表示されるメニューは「挿入」「削除」が使用可能な状態です。
「ブックを保護」マクロを実行します。
保護後、解除するには「ブックの保護を解除」マクロを実行します。
保護実行後の画面です。
ウィンドウの最小ボタン、元に戻すボタンが消えています。
シート名を右クリックすると表示されるメニューの「挿入」「削除」が使用不可な状態になっています。
Excelマクロのサンプルファイル:
フリーダウンロード
Copyright (C) excel.usefulhp.com All rights reserved.