VBA シートの保護と解除

未分類

VBAでExcelのシートを保護・解除する方法はとてもシンプルです。以下に、基本的なコードとオプション(パスワード付き、編集許可の細かい設定など)を紹介します。


✅ シートの保護をする(基本)

vbコピーする編集するSub シートを保護する()
    Worksheets("Sheet1").Protect
End Sub

✅ パスワード付きで保護する

Sub パスワード付きで保護()
Worksheets("Sheet1").Protect Password:="mypassword"
End Sub

✅ シートの保護を解除する(基本)

Sub シートの保護を解除する()
Worksheets("Sheet1").Unprotect
End Sub

✅ パスワード付きの保護を解除

Sub パスワード付きの保護を解除()
Worksheets("Sheet1").Unprotect Password:="mypassword"
End Sub

✅ 保護のオプション(特定操作を許可する)

Sub オプション付きで保護()
Worksheets("Sheet1").Protect _
Password:="mypassword", _
DrawingObjects:=True, _
Contents:=True, _
Scenarios:=True, _
AllowFormattingCells:=True, _
AllowFormattingColumns:=True, _
AllowFormattingRows:=True, _
AllowInsertingRows:=True, _
AllowDeletingRows:=True, _
AllowSorting:=True, _
AllowFiltering:=True, _
AllowUsingPivotTables:=True
End Sub

🔍 よく使うオプション

オプション名許可される操作
AllowFormattingCellsセルの書式変更
AllowSorting並べ替え
AllowFilteringフィルターの操作
AllowUsingPivotTablesピボットテーブルの使用

✅ すべてのシートを一括で保護/解除

保護:

Sub すべてのシートを保護()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ws.Protect Password:="mypassword"
Next ws
End Sub

解除:

Sub すべてのシートを解除()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ws.Unprotect Password:="mypassword"
Next ws
End Sub

✅ 補足

  • 保護された状態では、数式の変更や行列の追加削除などが制限されます。
  • 保護しても「表示のみ」できる状態にして、特定の操作だけを許可することができます。
タイトルとURLをコピーしました