シート保護設定
Excel VBA でシート保護設定を行うには、主に以下の2つの方法があります。
Worksheet.Protect メソッドを使用する
Worksheet.Protect メソッドは、ワークシートを保護するための最も基本的な方法です。
引数として、以下のオプションを指定することができます。
password (オプション): ワークシートの保護を解除するためのパスワードを設定します。
パスワードを省略すると、パスワードなしで保護解除できます。
drawingObjects (オプション): 図形オブジェクトの編集を許可するかどうかを指定します。
True を指定すると、図形オブジェクトの編集が許可されます。
content (オプション): セルの内容の編集を許可するかどうかを指定します。 True を指定すると、セルの内容の編集が許可されます。
scenari os (オプション): シナリオの編集を許可するかどうかを指定します。
True を指定すると、シナリオの編集が許可されます。
autoFilter (オプション): オートフィルタの使用を許可するかどうかを指定します。
True を指定すると、オートフィルタの使用が許可されます。
pivotTables (オプション): ピボットテーブルの作成と編集を許可するかどうかを指定します。
True を指定すると、ピボットテーブルの作成と編集が許可されます。
chartObjects (オプション): チャートオブジェクトの編集を許可するかどうかを指定します。T
rue を指定すると、チャートオブジェクトの編集が許可されます。
以下のコード例は、パスワードなしでワークシートを保護し、セルの編集とオートフィルタの使用を許可するものです。
VBA
Sub ProtectSheet()
ActiveSheet.Protect password:=vbNull, drawingObjects:=True, content:=True, scenarios:=True, autoFilter:=True, pivotTables:=True, chartObjects:=True
End Sub
コードは注意してご使用ください。
2. ThisWorkbook.Worksheets コレクションを使用する
ThisWorkbook.Worksheets コレクションを使用すると、ワークブック内のすべてのワークシートをまとめて保護することができます。この方法を使用する場合は、以下の点に注意する必要があります。
保護するワークシートを個別に指定する必要があります。
各ワークシートに対して個別に保護オプションを指定する必要があります。
以下のコード例は、Sheet1 と Sheet2 をパスワード "password" で保護し、セルの編集とオートフィルタの使用を許可するものです。
VBA
Sub ProtectWorksheets()
ThisWorkbook.Worksheets("Sheet1").Protect password:="password", drawingObjects:=True, content:=True, scenarios:=True, autoFilter:=True, pivotTables:=True, chartObjects:=True
ThisWorkbook.Worksheets("Sheet2").Protect password:="password", drawingObjects:=True, content:=True, scenarios:=True, autoFilter:=True, pivotTables:=True, chartObjects:=True
End Sub
コードは注意してご使用ください。
シート保護の解除
シートの保護を解除するには、Worksheet.Unprotect メソッドを使用します。引数として、以下のオプションを指定することができます。
password (オプション): ワークシートの保護を解除するためのパスワードを指定します。パスワードを省略すると、設定されているパスワードが使用されます。
以下のコード例は、アクティブなワークシートの保護を解除するものです。
VBA
Sub UnprotectSheet()
ActiveSheet.Unprotect password:=vbNull
End Sub
コードは注意してご使用ください。
上記以外にも、Excel VBA でシート保護設定を行う方法はいくつかあります。詳細は、以下のマイクロソフトのドキュメントを参照してください。
Worksheet.Protect メソッド (Excel)
ThisWorkbook.Worksheets コレクション (Excel) [無効な URL を削除しました]
Worksheet.Unprotect メソッド (Excel)
その他
シート保護を設定すると、ユーザーは保護されたシートを変更できなくなります。
ただし、VBA コードを使用して保護されたシートを変更することはできます。
シート保護を解除すると、ユーザーは保護されたシートを自由に編集できるようになります。
シート保護を使用する場合は、ユーザーが誤ってシートを変更できないように注意する必要があります。