Protectメソッド解説(Excel VBA)

Excel VBA: Worksheet.Protect メソッド

Excel VBAのWorksheet.Protect メソッドは、ワークシートの保護を設定するために使用されます。保護を設定することで、データの編集やフォーマットの変更などを制限し、ワークシートを安全に保護することができます。

Worksheet.Protect メソッドの基本的な構文

Worksheet.Protectメソッドの基本的な構文は次のとおりです:


    expression.Protect(Password, DrawingObjects, Contents, Scenarios, UserInterfaceOnly, AllowFormattingCells, AllowFormattingColumns, AllowFormattingRows, AllowInsertingColumns, AllowInsertingRows, AllowInsertingHyperlinks, AllowDeletingColumns, AllowDeletingRows, AllowSorting, AllowFiltering, AllowUsingPivotTables)
    

パラメータの説明:

以下に、Worksheet.Protect メソッドの各パラメータの説明と使用可能な値を示します。

  • Password: パスワードを設定することで、保護を解除する際に必要となるパスワードを指定します。
  • DrawingObjects: Trueに設定した場合、シート上の図形オブジェクトの保護を行います。
  • Contents: Trueに設定した場合、シートの内容(セルの値など)の保護を行います。
  • Scenarios: Trueに設定した場合、シナリオの保護を行います。
  • UserInterfaceOnly: Trueに設定した場合、Excelのユーザーインターフェースを通じた変更のみを制限し、VBAコードからの変更は許可します。
  • AllowFormattingCells: Trueに設定した場合、保護中でもセルの書式設定の変更を許可します。
  • AllowFormattingColumns: Trueに設定した場合、保護中でも列の書式設定の変更を許可します。
  • AllowFormattingRows: Trueに設定した場合、保護中でも行の書式設定の変更を許可します。
  • AllowInsertingColumns: Trueに設定した場合、保護中でも列の挿入を許可します。
  • AllowInsertingRows: Trueに設定した場合、保護中でも行の挿入を許可します。
  • AllowInsertingHyperlinks: Trueに設定した場合、保護中でもハイパーリンクの挿入を許可します。
  • AllowDeletingColumns: Trueに設定した場合、保護中でも列の削除を許可します。
  • AllowDeletingRows: Trueに設定した場合、保護中でも行の削除を許可します。
  • AllowSorting: Trueに設定した場合、保護中でもソートの操作を許可します。
  • AllowFiltering: Trueに設定した場合、保護中でもフィルタリングの操作を許可します。
  • AllowUsingPivotTables: Trueに設定した場合、保護中でもピボットテーブルの操作を許可します。

Worksheet.Protectメソッドの使用例

Worksheet.Protectメソッドを使用して、ワークシートの保護を設定する基本的なコードは以下のようになります。


    Sub SimpleProtectExample()
        Worksheets("Sheet1").Protect Password:="password"
    End Sub
    

このコードは、パスワード「password」を使用して、”Sheet1″という名前のワークシートを保護します。この設定では、パスワードを知らない限り、データの編集やフォーマットの変更などが制限されます。

Worksheet.Protectメソッドの詳細な使用例

Worksheet.Protectメソッドの各パラメータを活用することで、ワークシートの保護設定を詳細に制御することが可能です。以下に、パラメータを指定したサンプルコードを示します。


    Sub DetailedProtectExample()
        Worksheets("Sheet1").Protect Password:="password", AllowFormattingCells:=True
    End Sub
    

このコードでは、パスワード「password」を使用して、”Sheet1″という名前のワークシートを保護します。また、AllowFormattingCellsパラメータをTrueに設定しているため、セルの書式設定の変更は可能となっていますが、それ以外の編集は制限されます。