PowerTools SPREAD for Windows Forms 10.0J > 開発者ガイド > 編集、検証、選択、フォーカス > 編集 > セルのロック |
ユーザーが編集できないように、セルまたはセル範囲をロックできます。 この状態をユーザーが識別できるように、ロックされたセルの外観を変更することもできます。
セルをロックするには、Cell、Column、Row、または AlternatingRowクラスのLockedプロパティを使用します。 StyleInfoクラスのLockedプロパティを設定して、ロックするセルにこのスタイルを適用することもできます。 また、セルをロックするには、SheetViewクラスのProtectプロパティを設定する必要があります。 Lockedプロパティはセルがロック対象であることを示し、Protectプロパティは、これらのセルを実際にロックするかどうかを設定します。 ユーザー入力を拒否するようにロック対象としてマークされたセルに対しては、シートのProtectプロパティをTrue(デフォルト値)に設定する必要があります。 このプロパティが False に設定されていると、ロック対象としてマークされている場合でも、ユーザーはこのセルの操作が可能になります。
セルをロックするもう1つの方法は、TextCellTypeクラスを使用してセルをテキスト型に設定し、ReadOnlyプロパティを設定することです。 これで、このセルは編集できなくなります。
ロックされたセルに対し、さまざまな色(背景色、テキスト色)やフォントを指定することもできます。これには、SheetView、Appearance、Cell、Column、Row、NamedStyle、またはStyleInfoオブジェクトのLockBackColor、LockForeColor、およびLockFontプロパティを使用します。
LockBackColor、LockForeColor、およびLockFontプロパティは、データ領域のセルに対して有効です。行ヘッダ、および列ヘッダのヘッダ領域のセルに対する設定は無効です。 |
セルをロックしても、このセル上に表示されているシェイプ(フローティング オブジェクト)はロックされません。 シートの保護は、このシート内でロック対象としてマークされたすべてのセルがロックされることを意味するだけであり、このシート上のシェイプには適用されません。 シェイプのロックについては、「シェイプ」を参照してください。
セルをロックするにはCellクラスの、行はRowクラスの、列はColumnクラスのLockedプロパティを使用します。ロックした各セルをユーザーが入力できないようにするには、SheetViewクラスのProtectプロパティをTrueに設定する必要があります。
次のサンプル コードは、シートのProtectプロパティがTrueに設定された状態で、複数列のセルをロックします。次に、セル範囲を指定してロックを解除します。
C# |
コードのコピー
|
---|---|
fpSpread1.ActiveSheet.Protect = true; fpSpread1.ActiveSheet.LockBackColor = Color.LightCyan; fpSpread1.ActiveSheet.LockForeColor = Color.Green; FarPoint.Win.Spread.Column columnobj; columnobj = fpSpread1.ActiveSheet.Columns[0, 3]; columnobj.Locked = true; FarPoint.Win.Spread.Cell cellobj; cellobj = fpSpread1.ActiveSheet.Cells[1,1,1,2]; cellobj.Locked = false; fpSpread1.ActiveSheet.Cells[1,0,1,4].Text = "First Five"; |
Visual Basic |
コードのコピー
|
---|---|
FpSpread1.ActiveSheet.Protect = True FpSpread1.ActiveSheet.LockBackColor = Color.LightCyan FpSpread1.ActiveSheet.LockForeColor = Color.Green Dim columnobj As FarPoint.Win.Spread.Column columnobj = fpSpread1.ActiveSheet.Columns(0, 3) columnobj.Locked = True Dim cellobj As FarPoint.Win.Spread.Cell cellobj = fpSpread1.ActiveSheet.Cells(1,1,1,2) cellobj.Locked = False FpSpread1.ActiveSheet.Cells(1,0,1,4).Text = "First Five" |