バリーはワークシートをロックして、パスワードを与えた人だけが編集できるようにすることができます。ユーザーがパスワードを入力し、編集を行ってから、ワークシートを含むブックを保存すると、そのワークシートは保護されなくなります。バリーは、ワークシートを保存するときに、Excelがユーザーに、最初に使用したのと同じパスワードを使用してワークシートをもう一度保護するように通知できる方法があるかどうか疑問に思います。

この問題を解決するには、いくつかの方法があります。ワークシートにパスワードを割り当てた場合は、ワークブックの保存時に同じパスワードを使用してワークシートを再保護する必要があります。これは、BeforeSaveイベントに関連付けることができるマクロを使用して簡単に実行できます。このマクロはThisWorkbookオブジェクトに追加する必要があります:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

Sheets("ABC").Protect ("XYZ")

End Sub

この例では、保護するワークシートの名前がABCであり、ワークシートの保護に使用されるパスワードがXYZであると想定しています。実際のワークシートとパスワードを反映するように、これらの値を変更することをお勧めします。

このマクロは、ブックが保存されるたびにワークシートを自動的に再保護することに注意してください。したがって、ユーザーがワークシートとの長時間の作業セッションを持ち、そのセッション中にワークブックを何度も保存する場合、ワークシートの保護を頻繁に解除する必要があります。必要に応じて、ワークシートを再保護する必要があるかどうかを尋ねるマクロを作成できます。

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

If MsgBox("Reprotect Sheet ABC?", vbYesNoCancel) = vbYes Then         Sheets("ABC").Protect ("XYZ")

End If End Sub

もちろん、このアプローチは、ユーザーがワークシートを再保護しないことを選択した場合、ワークシートが再度保護されない可能性があることを意味します。

別のアプローチでは、マクロをまったく使用しませんが、保護を行うために別の方法を使用します。従来のワークシート保護では、個々のセルをロック解除済みとしてフォーマットしてから、ワークシートに保護を適用して、ロックされたセルを変更できないようにします。

セルをロック解除としてマークしない場合(これはBarryが行っていることのようです)、ワークシートの何もパスワードなしで変更することはできません。

Excel 2002以降、ワークシート内のセルの個々の範囲を実際に保護できます。次の手順に従ってください:

。 [ツール]メニューから[保護]を選択し、[ユーザーに範囲の編集を許可する]を選択します。 Excelは、[ユーザーに範囲の編集を許可する]ダイアログボックスを表示します。

(図1を参照)

。 [新規]ボタンをクリックします。 Excelに[新しい範囲]ダイアログボックスが表示されます。 (図2を参照)

。 [タイトル]ボックスに、この範囲に使用する名前を入力します。

。 [セルを参照]ボックスに、ユーザーが編集できるようにする範囲を入力します。 (この同じパスワードを使用する範囲が複数ある場合は、それらの範囲をコンマで区切ることができます。)

。 [範囲パスワード]ボックスに、ユーザーに付与するパスワードを入力します。

。 [OK]をクリックします。もう一度パスワードの入力を求められます。

。手順5で使用したパスワードをもう一度入力します。これで、[ユーザーに範囲の編集を許可する]ダイアログボックスに範囲が表示されます。

。 [OK]をクリックして、[ユーザーに範囲の編集を許可する]ダイアログボックスを閉じます。

。通常どおりにワークシートを保護します。

ワークシートを保護するときに覚えておく必要があることは1つだけです(ステップ9)。セルのロックを解除していないため、ワークシート内のすべてのセルが保護されます。適用する保護により、ロックされたセルを選択できることを確認する必要があります。ワークシートが保護された後、ユーザーが手順4で指定した範囲内のセルを編集しようとすると、手順5で指定したパスワードの入力を求められます。ユーザーがパスワードを提供すると、任意のセルを編集できます。範囲内。

このアプローチの優れた点は、ワークシートの保護が削除されないことです。ユーザーがその保護を削除したことがないため、ワークシートは引き続き保護されます。したがって、ユーザーはワークシート全体のパスワードを知る必要はありません。ユーザーがブックを閉じて再度開いた場合でも、必要に応じてワークシートは保護されます。さらに、マクロの避けられない欠点はありません。ユーザーがワークブックを開いたときにマクロを無効にできるということです。

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(11972)は、Microsoft Excel 97、2000、2002、および2003に適用されます。

Excel(Excel 2007以降)のリボンインターフェイスに関するこのヒントのバージョンは、次の場所にあります: