社内で色々なファイルを取り扱う事があると思いますが、その中には重要なファイルが多くあると思います。EXCELブックのワークシート内に、作成したデータや表などを書き換えられては困る情報が有ると思いますが、その時に利用するのが、ワークシートの保護です。データ以外にも他のユーザーに計算式を壊されたり、勝手に行・列などを挿入・削除させない様にするのにも、ワークシートの保護が有効です。なお、EXCEL VBAでは、ワークシートの保護状態でもデータなどを直接変更する事も出来ます。ここでは、EXCEL VBAを利用したワークシートの保護・ワークシートの保護解除の利用方法をサンプルプログラムを交えて説明いたします。
【ワークシートの保護】 ●オブジェクト.Protectメソッド
Protect (Password,DrawingObjects,Contents,Scenarios,userinterfaceonly,AllowFormattingCells, AllowFormattingColumns,AllowFormattingRows,AllowInsertingColumns,AllowInsertingRows,AllowInsertingHyperlinks,AllowDeletingColumns,AllowDeletingRows,allowsorting,allowfiltering,AllowUsingPivotTables)
【使用例】:Worksheets(“Sheet1”).Protect Passsword:=”Pass”※ワークシート1の保護を設定します。(パスワードは、”Pass”)
注意:設定したパスワードは、失念すると解除出来なくなります。
| Protect メソッド 引数一覧 |
|---|
| 引数 | 既定値 | 説明 |
| Password | | ワークシートのパスワードを設定します。この設定したパスワードは、保護解除する時に必要になります。 |
| DrawingObjects | True | 描画オブジェクト(図形)を保護するには、 True を指定します。Falseで解除 |
| Contents | True | グラフ全体が保護されます。Trueで保護します。 |
| Scenarios | True | シナリオを保護するには、 True を指定します。 この引数はワークシートの場合のみ有効です。 |
| UserInterfaceOnly | False | True を指定すると、画面上からの変更はできません。(保護)VBA(マクロ)からの変更は保護されません。 この引数を省略すると、VBA(マクロ)からも、画面上からも保護されて変更することができなくなります。 |
| AllowFormattingCells | False | True を指定すると、保護されたワークシートのセルを書式設定することができます。 |
| AllowFormattingColumns | False | True を指定すると、保護されたワークシートの列を書式設定することができます。 |
| AllowFormattingRows | False | Trueを指定すると、保護されたワークシートの行を書式設定できます。 |
| AllowInsertingColumns | False | True を指定すると、保護されたワークシートに列を挿入することができます。 |
| AllowInsertingRows | False | True を指定すると、保護されたワークシートに行を挿入することができます。 |
| AllowInsertingHyperlinks | False | Trueを指定すると、保護されたワークシートにハイパーリンクを挿入することが許可されます。 |
| AllowDeletingColumns | False | True を指定すると、保護されたワークシートの列を削除することができ、削除される列のセルはすべてロック解除されます。 |
| AllowDeletingRows | False | True を指定すると、保護されたワークシートの行を削除することができ、削除される行のセルはすべてロック解除されます。 |
| AllowSorting | False | True を指定すると、保護されたワークシートで並べ替えを行うことができます。 並べ替え範囲内のセルは、ロックと保護が解除されている必要があります。 |
| AllowFiltering | False | True を指定すると、保護されたワークシートにフィルターを設定することができます。 |
| AllowUsingPivotTables | False | Trueを指定すると、保護されたワークシートでピボットテーブルとピボットグラフを使用することができます。 |
【ワークシートの保護解除】 ●オブジェクト.Unprotectメゾット 【使用例】:Worksheets(“Sheet1″).UnProtect Passsword:=”Pass” ※ワークシート1の保護を解除します。(パスワードは、””Pass”) 注意:設定したパスワードは、失念すると解除出来なくなります。
下記のサンプルプログラムは、指定するワークシートに対して、ワークシートの保護を行います。 【条件処理】※保護 ・ワークシート「機密情報」・・パスワード「kimitsu」 ・ワークシート「個人情報」・・パスワード「kojin」 下記のプログラムを実行する際に、ワークシート名を・「機密情報」「個人情報」に変更して下さい。
下記のサンプルプログラムは、指定するワークシートに対して、ワークシートの保護解除を行います。なお、ワークシートの保護は、サンプル①で実行しています。 【条件処理】※保護解除 ・ワークシート「機密情報」・・パスワード「kimitsu」 ・ワークシート「個人情報」・・パスワード「kojin」 下記のプログラムを実行する際に、ワークシート名を・「機密情報」「個人情報」に変更して下さい。
下記のサンプルプログラムは、ユーザーに対してワークシートの保護解除用のパスワードを入力させるプログラムです。
【条件処理】※保護解除 ・ワークシート「個人情報」・・パスワード「kojin」 下記のプログラムを実行する際に、ワークシート名を「個人情報」に変更して下さい。
最後まで、ご覧いただきまして誠に有難うございました。 また、VBAに関するテクニックや便利な手法などをこのサイトに掲載していきますので、定期的に参照していただけると幸いです。