方法: プログラムによってワークシートを保護する
Microsoft Office Excel の保護機能を使用すると、ワークシート内のオブジェクトの編集をユーザーが行うことや、コードから行うことはできなくなります。既定では、保護を有効にすると、すべてのセルがロックされます。
対象: このトピックの情報は、Excel 2013 と Excel 2010 のドキュメント レベルのプロジェクトおよびアプリケーション レベルのプロジェクトに適用されます。詳細については、「Office アプリケーションおよびプロジェクト タイプ別の使用可能な機能」を参照してください。
ドキュメント レベルのカスタマイズでは、Excel デザイナーを使用してワークシートを保護できます。プロジェクトの種類に関係なく、実行時にプログラムによってワークシートを保護することもできます。
[!メモ]
保護されているワークシートの領域に Windows フォーム コントロールを追加することはできません。
デザイナーの使用
デザイナーでワークシートを保護するには
[校閲] タブの [変更] で [シートの保護] をクリックします。
[シートの保護] ダイアログ ボックスが表示されます。パスワードを設定できます。オプションで、セルの書式設定や行の挿入など、ユーザーにワークシートでの実行を許可する操作を指定することもできます。
ユーザーに、保護されたワークシート内の特定の範囲の編集を許可することもできます。
特定の範囲の編集を許可するには
[校閲] タブの [変更] で [範囲の編集を可能にする] をクリックします。
[範囲の編集を許可] ダイアログ ボックスが表示されます。パスワードを使用してロックを解除できる範囲と、パスワードがなくても範囲を編集できるユーザーを指定できます。
実行時におけるコードの使用
次のコードは、(ユーザーから取得したパスワードを格納する変数 getPasswordFromUser を使用して) パスワードを設定し、並べ替えだけを許可します。
ドキュメント レベルのカスタマイズで、コードを使用してワークシートを保護するには
ワークシートの Protect メソッドを呼び出します。この例では、Sheet1 という名前のワークシートを使用すると仮定します。
Globals.Sheet1.Protect(getPasswordFromUser, AllowSorting:=True)
Globals.Sheet1.Protect(getPasswordFromUser, true);
アプリケーション レベルのアドインで、コードを使用してワークシートを保護するには
アクティブなワークシートの _Worksheet.Protect メソッドを呼び出します。
CType(Application.ActiveSheet, Excel.Worksheet).Protect(getPasswordFromUser, AllowSorting:=True)
((Excel.Worksheet)Application.ActiveSheet).Protect(getPasswordFromUser, true);