入力後の自動保護(Microsoft Excel)
Excelはワークシートを保護します。つまり、セルの内容を保護して変更できないようにすることができます。この保護をどのように使用するかについては、_ExcelTips_の他の問題で正確に説明されています。
セルの編集を許可したいが、誰かがセルに情報を入力した直後にセルを保護したい場合はどうでしょうか。たとえば、ユーザーが情報を入力できるセルがありますが、一度入力すると、入力した情報を変更できるようにしたくありません。
入力後の入力を保護するExcelの固有の機能はありませんが、マクロを使用して機能を作成できます。次のマクロは、これを行う方法の例です。
Private Sub Worksheet_Change(ByVal Target As Range) Dim MyRange As Range Set MyRange = Intersect(Range("A1:D100"), Target) If Not MyRange Is Nothing Then Sheets("Sheet1").Unprotect password:="hello" MyRange.Locked = True Sheets("Sheet1").Protect password:="hello" End If End Sub
このマクロは、ワークシートがすでに保護されており、入力を可能にするすべてのセルのロックが解除されていることを前提としています。
入力が適切なセル範囲(この場合はA1:D100の範囲)で行われたかどうかを確認します。そうであった場合、ワークシートは保護されておらず、情報が入力されたばかりのセルがロックされ、ワークシートが再び保護されます。
独自のワークブックでこのアプローチを使用している場合は、潜在的な入力範囲を変更する必要があり、ワークシートの保護を解除して保護するために使用するパスワードを変更する必要があります。
注:
このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。
このヒント(10203)は、Microsoft Excel 2007および2010に適用されます。Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。