Unprotectメソッドは、Excel VBAを使用して保護されたシートやワークブックの保護を解除するために使用されます。保護されたシートやワークブックでは、編集や書式の変更が制限されていますが、このメソッドを使うことで保護を解除し、ユーザーが通常通り操作できるようになります。この記事では、Unprotectメソッドの使い方について説明します。
目次
Excel VBAでのUnprotectメソッドの使い方
Unprotectメソッドとは?
Unprotectメソッドは、Excelのシートやワークブックにかけられた保護を解除するためのメソッドです。Protectメソッドでかけた保護を、このメソッドを使って解除することができます。シート保護が有効になっていると、ユーザーがセルの編集や行・列の挿入、削除、並べ替え、書式変更などの操作が制限されますが、Unprotectメソッドを使うとこれらの制限を解除できます。【VBA】Protectメソッド:操作制限・保護・マクロ有効
Unprotectメソッドの基本構文
Worksheet.Unprotect Password
Workbook.Unprotect Password
Password: 保護がパスワードで設定されている場合、そのパスワードを指定します(省略可能)。
シートの保護を解除する
特定のシートの保護を解除する最も基本的な使い方を紹介します。
Sub UnprotectSheet()
' シート1の保護を解除
Sheets("Sheet1").Unprotect
End Sub
Sheet1の保護を解除します。パスワードが設定されていない場合、ただちにシートの保護が解除されます。
パスワードを使ってシートの保護を解除する
パスワードが設定されている場合、保護を解除するには正しいパスワードを指定する必要があります。
Sub UnprotectSheetWithPassword()
' パスワード "mypassword" を使ってシート1の保護を解除
Sheets("Sheet1").Unprotect Password:="mypassword"
End Sub
「mypassword」で保護されたシートの保護を解除します。パスワードが正しければ、シートの保護が自動的に解除されます。
ワークブックの保護を解除する
シートだけでなく、ワークブック全体に対してかけられた保護も解除できます。ワークブックの保護には、シートの追加・削除、シート名の変更、構造の変更などに制限がかかります。
【使用例: ワークブックの保護を解除する】
Sub UnprotectWorkbook()
' ワークブック全体の保護を解除
ThisWorkbook.Unprotect
End Sub
現在開いているワークブックの保護が解除されます。パスワードが設定されている場合は、パスワードを指定する必要があります。
【使用例: パスワード付きでワークブックの保護を解除する】
Sub UnprotectWorkbookWithPassword()
' パスワード "workbookpassword" で保護されたワークブックを解除
ThisWorkbook.Unprotect Password:="workbookpassword"
End Sub
「workbookpassword」というパスワードで保護されたワークブックの保護を解除します。
ProtectメソッドとUnprotectメソッドを組み合わせる
ProtectメソッドとUnprotectメソッドを組み合わせることで、必要に応じてシートやワークブックを保護したり、保護を解除したりする操作をVBAで自動化できます。
【使用例: シートの保護と解除の組み合わせ】
Sub ProtectAndUnprotectSheet()
' シート1をパスワード "mypassword" で保護
Sheets("Sheet1").Protect Password:="mypassword"
' 処理後にシート1の保護を解除
Sheets("Sheet1").Unprotect Password:="mypassword"
End Sub
シート1を保護し、処理を行った後で保護を解除するという一連の流れを実行します。これにより、特定の操作を行う間だけ保護をかけることができます。
Unprotectメソッドの注意点
パスワードの正確性
Unprotectメソッドを使用してパスワード保護を解除する場合、正しいパスワードを指定する必要があります。間違ったパスワードを指定すると、保護が解除されず、エラーが発生することがあります。
セキュリティへの配慮
Unprotectメソッドを使用する際に、パスワードをコード内で明示的に記述する場合は、セキュリティに十分注意してください。パスワードをコード内に記載すると、他のユーザーが簡単に確認できるため、パスワード管理やコードの保護が重要です。
まとめ
Excel VBAでのUnprotectメソッドを使用することで、保護されたシートやワークブックの保護を簡単に解除することができます。特に、パスワード保護されたシートやワークブックをプログラム内で操作する場合、このメソッドは非常に便利です。保護と解除のタイミングを適切に管理することで、誤った編集や操作を防ぎながら、必要な処理をスムーズに行うことができます。