MESCIUS SPREAD for Windows Forms 17.0J
セルのロック

ユーザーが編集できないように、セルまたはセル範囲をロックできます。

セルをロックするには、CellColumnRow、または AlternatingRowクラスのLockedプロパティを使用します。  また、SheetViewクラスのProtectプロパティを設定する必要があります。 Lockedプロパティはセルがロック対象であることを示し、Protectプロパティは、これらのセルを実際にロックするかどうかを設定します。 ユーザー入力を拒否するようにロック対象としてマークされたセルに対しては、シートのProtectプロパティをTrue に設定する必要があります。 このプロパティが False に設定されていると、ロック対象としてマークされている場合でも、ユーザーはこのセルの操作が可能になります。なお、デフォルトではLockedプロパティはTrueになっていますので、ProtectプロパティをTrueに変更するとすべてのセルがロックされた状態になります。一部のセルのみロックする場合には、それ以外のセル範囲のロックを解除する必要があります。

セルをロックするもう1つの方法は、TextCellTypeクラスを使用してセルをテキスト型に設定し、ReadOnlyプロパティを設定することです。 これで、このセルは編集できなくなります。

  • ColumnやRowのLockedプロパティを変更しても、その変更内容がCellのLockedプロパティに反映されるわけではありません。詳しくは「オブジェクトの親子関係」をご参照ください。

セルをロックしても、このセル上に表示されているシェイプ(フローティング オブジェクト)はロックされません。 シートの保護は、このシート内でロック対象としてマークされたすべてのセルがロックされることを意味するだけであり、このシート上のシェイプには適用されません。 シェイプのロックについては、「シェイプ」を参照してください。

設定方法

セルをロックするにはCellクラスの、行はRowクラスの、列はColumnクラスのLockedプロパティを使用します。ロックした各セルをユーザーが入力できないようにするには、SheetViewクラスのProtectプロパティをTrueに設定する必要があります。

サンプルコード

次のサンプルコードは、シートのProtectプロパティがTrueに設定された状態で、セル範囲を指定してロックを解除します。

C#
コードのコピー
fpSpread1.ActiveSheet.Protect = true;
//行列ヘッダのロック表示解除
fpSpread1.ActiveSheet.ColumnHeader.Rows[0].Locked = false;
fpSpread1.ActiveSheet.RowHeader.Columns[0].Locked = false;
//セルB2からセルC2のロックを解除
FarPoint.Win.Spread.Cell cellobj;
cellobj = fpSpread1.ActiveSheet.Cells[1, 1, 1, 2];
cellobj.Locked = false;
//4行目以降のロックを全て解除
fpSpread1.ActiveSheet.Rows[3, fpSpread1.ActiveSheet.RowCount - 1].Locked = false;

Visual Basic
コードのコピー
fpSpread1.ActiveSheet.Protect = True
'行列ヘッダのロック表示解除
fpSpread1.ActiveSheet.ColumnHeader.Rows(0).Locked = False
fpSpread1.ActiveSheet.RowHeader.Columns(0).Locked = False
'セルB2からセルC2のロックを解除
Dim cellobj As FarPoint.Win.Spread.Cell
cellobj = fpSpread1.ActiveSheet.Cells(1, 1, 1, 2)
cellobj.Locked = False
'4行目以降のロックを全て解除
fpSpread1.ActiveSheet.Rows(3, fpSpread1.ActiveSheet.RowCount - 1).Locked = False

SPREAD デザイナの使用

  1. 作業領域で、ロックを解除するセルまたはセル範囲を選択します。セル範囲を選択するには、セル範囲をドラッグで選択するか、行ヘッダまたは列ヘッダを選択(行または列全体を選択する場合)します。
  2. プロパティ リストの「その他」カテゴリから Locked プロパティを選択し、値を False に設定します。
  3. 該当セルが含まれるシートのシート名タブをクリックします。「選択したアイテム」リストで「シート」を選択し、 プロパティ リストの「動作」カテゴリから、Protect プロパティを選択し、値を True に設定します。
  4. [ファイル]メニューから[適用して終了]を選択し、変更をコンポーネントに適用して SPREAD デザイナを終了します。

新しいスタイルシステムでは、次の方法でセルのロックをまとめて解除することが可能です。

C#
コードのコピー
var normalStyle = fpSpread1.AsWorkbook().Styles[GrapeCity.Spreadsheet.BuiltInStyle.Normal];
    normalStyle.Locked = false;

Visual Basic
コードのコピー
Dim normalStyle = fpSpread1.AsWorkbook().Styles(GrapeCity.Spreadsheet.BuiltInStyle.Normal)
    normalStyle.Locked = False
参照

 

 


© MESCIUS inc. All rights reserved.