Toddは、他の人が使用するワークブックを作成しました。データが台無しになるのを防ぐために、彼はワークシートとワークブックを保護しました。問題は、トッドが変更を加えた後、ワークシートとワークブックを保護するのを忘れることがあることです。彼は、ワークシート/ワークブックが現在保護されているか保護されていないかを示す視覚的なインジケーターを作成する方法があるかどうか疑問に思っています。

もちろん、何かが保護されていないかどうかを確認する最も簡単な方法は、さまざまなリボンタブのツールを確認することです。すべてのツールが揃っている場合、ワークシートとワークブックは保護されていません。使用できない(「グレー表示された」)ツールが多数ある場合、保護がオンになります。

もう1つの簡単な解決策は、ブックまたはワークシートが保護されているかどうかを示す値を返すユーザー定義関数を作成することです。以下はトリックを行います:

Function WksProtected(rng As Range) As String     Application.Volatile     If rng.Parent.ProtectContents Then         WksProtected = "Protected"

Else         WksProtected = "Not Protected"

End If End Function
Function WkbProtected(rng As Range) As String     Application.Volatile     If rng.Parent.Parent.ProtectStructure Then         WkbProtected = "Protected"

Else         WkbProtected = "Not Protected"

End If End Function

マクロを使用するには、ワークシートの任意の場所に次のような数式を含めるだけです。

=WksProtected(A1)

=WkbProtected(A1)

数式の結果は「保護されている」または「保護されていない」のいずれかです

ワークシートとワークブックの状態によって異なります。条件付き書式を使用して、関数によって返される内容に基づいてセルを強調表示できます。

注意:関数の値は、ワークシートが再計算された場合にのみ更新されます。ワークシートを保護(または保護解除)するだけの場合、ワークシートが再計算されることはありません。したがって、保護ステータスを変更した後に適切な結果を確認するには、ワークシートを再計算する必要があります。

注:

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

link:/ excelribbon-ExcelTipsMacros [ここをクリックして、新しいブラウザタブでその特別なページを開きます]

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

このヒント(9639)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice 365のExcelに適用されます。Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。

link:/ excel-Visually_Showing_a_Protection_Status [視覚的に保護ステータスを表示]