VBAで自動化 VBA一覧 セル・シート・ブック操作 保護・解除

【VBA】Unprotectメソッド:ブック・シートの保護解除

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メソッドを使用することで、保護されたシートやワークブックの保護を簡単に解除することができます。特に、パスワード保護されたシートやワークブックをプログラム内で操作する場合、このメソッドは非常に便利です。保護と解除のタイミングを適切に管理することで、誤った編集や操作を防ぎながら、必要な処理をスムーズに行うことができます。

    -VBAで自動化, VBA一覧, セル・シート・ブック操作, 保護・解除