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_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

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

このヒント(3172)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。