アンドレは52のワークシートを含むワークブックを持っています。彼はワークシートを保護したいが、ワークブック自体は保護したくない。現在、彼は52枚すべてを個別に保護しています。彼はそれらすべてを一度に保護する方法があるかどうか疑問に思います。

これを行う唯一の方法は、マクロを使用することです。幸い、マクロは非常に短いです:

Sub ProtectAllSheets()

Dim ws As Worksheet

For Each ws In Worksheets         ws.Protect     Next End Sub

このマクロを実行すると、パスワードを指定せずに、ブック内のすべてのワークシートが保護されます。 (これは、誰でも簡単に保護を解除できることを意味します。)パスワードを指定する場合は、簡単に変更できます。

Sub ProtectAllSheets()

Dim ws As Worksheet

For Each ws In Worksheets         ws.Protect Password:="MyPassword"

Next End Sub

指定したパスワードが各ワークシートに使用されます。つまり、すべてのワークシートで同じパスワードが使用されます。

Protectメソッドを.Unprotectに変更するだけで、これらのマクロを簡単に変更して、すべてのワークシートの保護を解除できます。

また、ワークブックまたはワークシートがワークシートの保護(共有など)を妨げるいくつかのオプションを利用している場合、マクロはエラーを生成することにも注意する必要があります。

まったく異なるアプローチは、サードパーティのユーティリティを使用して保護を行うことです。このようなユーティリティは、インターネットですばやく検索して見つけることができます。例としては、Asap Utilities(http://www.asap-utilities.com)があります。

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

このヒント(7511)は、Microsoft Excel 2007、2010、2013、および2016に適用されます。