Vbaを使用してシートを保護/保護解除するにはどうすればよいですか?
VBA には、シートで使用できる PROTECT メソッドがあります。この方法では、パスワードの有無にかかわらずシートを保護するオプションがあります。また、シートから物体を保護することもできます。このチュートリアルでは、これらすべてを詳しく説明します。
このチュートリアルでは、VBA コードを使用して単一のシートまたは複数のシートを保護および保護解除する方法を説明します。
シートを保護するための VBA コードを作成する
シートを保護するには、まずシートを指定してから、保護方法を使用する必要があります。手順は次のとおりです。
- シートを指定するには、sheets オブジェクトを使用します。
- 保護したいシートの名前を入力します。
- ピリオドを入力すると、メソッドとプロパティのリストが表示されます。
- プロジェクトの方法を選択するか、入力します。
Sheets("Sheet1").Protect
役立つリンク:マクロの実行–マクロ レコーダー– Visual Basic Editor –パーソナル マクロ ハンドブック
シートの保護を解除する VBA コードを作成する
シートを保護するには、まずシートを指定してから、unprotect メソッドを使用する必要があります。手順は次のとおりです。
- シートオブジェクトを使用してシートを指定します。
- 次に、保護したいシートの名前を入力します。
- ピリオドを入力してメソッドとプロパティのリストを取得します。
- 「保護を解除する」方法を選択するか、入力します。
Sheets("Sheet1").Unprotect
シートをパスワードで保護する
シートを保護するときにパスワードを設定する場合は、password 引数を使用してパスワードを指定する必要があります。シートを保護するために「test123」というパスワードをシートに設定したいとすると、コードは次のようになります。
Sheets("Sheet1").Protect Password:="test123"
シートのパスワード保護を解除する
同様に、シートの保護を解除する場合は、パスワード引数にパスワードを指定する必要があります。シートの保護に使用したパスワードが「ADSBP」だとすると、保護を解除するコードは以下のようになります。
Sheets("Sheet1").Unprotect Password:="ADSBP"
注意が必要な点が 1 つあります。VBA では大文字と小文字が区別されるため、大文字に注意してください。
その他知っておくべきこと
先ほども言いましたが、VBA の「Protect」メソッドを使用していますが、このメソッドには「Password」以外にも使用できる引数があります。
expression.Protect (Password, DrawingObjects, Contents, Scenarios, UserInterfaceOnly, AllowFormattingCells, AllowFormattingColumns, AllowFormattingRows, AllowInsertingColumns, AllowInsertingRows, AllowInsertingHyperlinks, AllowDeletingColumns, AllowDeletingRows, AllowSorting, AllowFiltering, AllowUsingPivotTables)
- DrawingObjects : シェイプを保護または保護解除します。
- 内容: ロックされたセルとグラフ全体を保護します。
- シナリオ: スプレッドシート内のシナリオを保護します。
- UserInterfaceOnly : マクロではなく、ユーザー インターフェイスのみを保護します。
- AllowFormattingCells : ユーザーがセルに書式設定を適用できるようにします。
- AllowFormattingColumns : ユーザーが列に書式設定を適用できるようにします。
- AllowFormattingRows : ユーザーが行に書式設定を適用できるようにします。
- AllowInsertingColumns : ユーザーが新しい列を挿入できるようにします。
- AllowInsertingRows : ユーザーが新しい行を挿入できるようにします。
- AllowInsertingHyperlinks : ユーザーがハイパーリンクを作成できるようにします。
- AllowDeletingColumns : ユーザーが列を削除できるようにします。
- AllowDeletingRows : ユーザーが行を削除できるようにします。
- 並べ替えを許可: ユーザーが行、列、テーブルを並べ替えることを許可します。
- AllowFiltering : 列のフィルタリングを許可します。
- AllowUsingPivotTables : ユーザーがピボット テーブルを使用できるようにします。
コメント
- 必ず大文字、小文字、数字、記号を組み合わせた強力なパスワードを使用してください。
- パスワードを忘れた場合、Microsoft はパスワードを回復できません。したがって、パスワードを安全な場所に必ず書き留めてください。
- シートがパスワードなしで保護されており、パスワードを使用して保護したい場合は、最初にシートの保護を解除する必要があります。次に、上記のコードを使用してパスワードで再保護します。
VBAとは
関連するチュートリアル
- Excel で VBA を使用してシート全体を消去する
- VBA を使用して Excel でシートをコピーおよび移動する
- Excel で VBA を使用した COUNT シート
- Excel で VBA を使用してシートを削除する
- Excel で VBA を使用してシートを非表示および表示する