OfficeType

VBA~シートの保護、保護解除~Excel

VBAでシートの保護、保護の解除をする方法を解説します。

シートの保護

ワークシートを保護したい時はWorksheet.Protectメソッドを使います。

下のコードを実行するとSheet1が保護され、シートを編集しようとすると保護を解除してくださいと表示されます。

Sub test1()

Worksheets("Sheet1").Protect

End Sub

保護の解除

ワークシートの保護を解除したい時はWorksheet.Unprotectメソッドを使います。

Sheet1が保護されている場合、下のコードを実行するとSheet1の保護が解除されます。

Sub test2()

Worksheets("Sheet1").Unprotect

End Sub

未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未-手動で解除したい時はこちら0342-のリンク

パスワードをつけてシートを保護

パスワードをつけてワークシートを保護したい時はWorksheet.Protectメソッドの引数Passwordを設定してます。

下のコードを実行するとSheet1がofficeというパスワード付きで保護されます。

Sub test3()

Worksheets("Sheet1").Protect Password:="office"

End Sub

パスワード付きで保護されたシートを解除

パスワード付きで保護されたシートを解除するときもパスワードが必要になります。

上のコードで保護されたシートの保護を解除するには下のコードを実行します。

Sub test4()

Worksheets("Sheet1").Unprotect Password:="office"

End Sub

未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未未-手動で解除したい時はこちら0342-のリンク

マクロのみ編集可にする

手動操作を保護し、マクロでの編集は可にしたい場合はWorksheet.Protectメソッドの引数Passwordを設定してます。UserInterfaceOnlyをTrueに設定します。

下のコードを実行すると手動操作からは保護されますが、マクロからの操作は可能です。

Sub test5()

Worksheets("Sheet1").Protect UserInterfaceOnly:=True

End Sub