見出し画像

シート保護設定

 Excel VBA でシート保護設定を行うには、主に以下の2つの方法があります。

  1. 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 コードを使用して保護されたシートを変更することはできます。
 シート保護を解除すると、ユーザーは保護されたシートを自由に編集できるようになります。
 シート保護を使用する場合は、ユーザーが誤ってシートを変更できないように注意する必要があります。

いいなと思ったら応援しよう!