作成日: 2018/03/30 最終更新日: 2018/05/11
文書種別
技術情報
詳細
SPREADでは、シートのProtectプロパティとセルのLockedプロパティを使用することでセルをロックすることが可能です。ただし、11.0Jと10.0J以前で、このセルのロック動作に相違があります。詳しくは、以下の内容をご覧ください。
ProtectプロパティとLockedプロパティのデフォルト設定や各ヘッダの外観を、10.0J以前と同じ設定にする場合には、以下のようなコードを実装してください。
◎サンプルコード(VB)
◎サンプルコード(C#)
なお、Service Pack 1(11.0.4502.2012)から、移行ツールに「10.0J以前のプロテクト/ロックの設定を維持する」オプションが追加されました。旧バージョンのプロジェクトを移行する際にこのオプションを有効にしていただくと、移行ツールによって、上記と同等の設定がデザイン情報として~.Designer.vb(~.designer.cs)に追加されます。ご利用ください。
■SPREAD for Windows Forms 移行ツール

移行ツールの詳細については、「移行ガイド」をご覧ください。
- ProtectプロパティとLockedプロパティの既定値が異なります。
シートのProtectプロパティとセルのLockedプロパティの既定値(デフォルト値)が、以下のように11.0Jと10.0J以前で異なります。
※11.0Jの既定値はMicrosoft Excelと同じであり、Excelとの互換性を考慮し、仕様を変更いたしました。プロパティ名 11.0Jの既定値 10.0J以前の既定値 SheetView.Protect False True StyleInfo.Locked True False
旧バージョンではProtectプロパティの既定値がTrueに設定されていたため、対象セルのLockedプロパティをTrueに変更することでセルのロックを実現していましたが、11.0JではセルのLockedプロパティの他にシートのProtectプロパティをTrueに変更する必要があります。
また、11.0Jでは全てのセルがデフォルトでロックされているため、任意のセルのみをロックする場合は、一度全てのセルのロックを解除した上で、ロックしたいセルのLockedプロパティをTrueに設定する必要があります。(全てのセルのLockedプロパティをFalseに設定する実装方法については、後述のサンプルコードをご覧ください。) - ロック時(シート保護時)の行・列ヘッダのスタイルが異なります。
シートのProtectプロパティをTrueに設定した時、行・列ヘッダのスタイルが10.0J以前と異なる外観で表示されます。これは、行・列ヘッダのスタイルにもLockedプロパティがあり、前述「1.」と同様に既定値がTrueに変更されているためです。
ロック時の行・列ヘッダの外観を旧バージョンと同じ状態に保ちたい場合には、各ヘッダのスタイルのLockedプロパティをFalseに設定してください。(詳細な実装方法については、後述のサンプルコードをご覧ください。)
ProtectプロパティとLockedプロパティのデフォルト設定や各ヘッダの外観を、10.0J以前と同じ設定にする場合には、以下のようなコードを実装してください。
◎サンプルコード(VB)
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' シートのProtectプロパティを設定
FpSpread1.ActiveSheet.Protect = True
' 行列ヘッダのLockedプロパティをfalseに設定
FpSpread1.ActiveSheet.RowHeader.DefaultStyle.Locked = False
FpSpread1.ActiveSheet.ColumnHeader.DefaultStyle.Locked = False
' シート全体のロックを解除
FpSpread1.ActiveSheet.DefaultStyle.Locked = False
End Sub
' シートのProtectプロパティを設定
FpSpread1.ActiveSheet.Protect = True
' 行列ヘッダのLockedプロパティをfalseに設定
FpSpread1.ActiveSheet.RowHeader.DefaultStyle.Locked = False
FpSpread1.ActiveSheet.ColumnHeader.DefaultStyle.Locked = False
' シート全体のロックを解除
FpSpread1.ActiveSheet.DefaultStyle.Locked = False
End Sub
◎サンプルコード(C#)
private void Form1_Load(object sender, EventArgs e)
{
// シートのProtectプロパティを設定
fpSpread1.ActiveSheet.Protect = true;
// 行列ヘッダのLockedプロパティをfalseに設定
fpSpread1.ActiveSheet.ColumnHeader.DefaultStyle.Locked = false;
fpSpread1.ActiveSheet.RowHeader.DefaultStyle.Locked = false;
// シート全体のロックを解除
fpSpread1.ActiveSheet.DefaultStyle.Locked = false;}
}
{
// シートのProtectプロパティを設定
fpSpread1.ActiveSheet.Protect = true;
// 行列ヘッダのLockedプロパティをfalseに設定
fpSpread1.ActiveSheet.ColumnHeader.DefaultStyle.Locked = false;
fpSpread1.ActiveSheet.RowHeader.DefaultStyle.Locked = false;
// シート全体のロックを解除
fpSpread1.ActiveSheet.DefaultStyle.Locked = false;}
}
なお、Service Pack 1(11.0.4502.2012)から、移行ツールに「10.0J以前のプロテクト/ロックの設定を維持する」オプションが追加されました。旧バージョンのプロジェクトを移行する際にこのオプションを有効にしていただくと、移行ツールによって、上記と同等の設定がデザイン情報として~.Designer.vb(~.designer.cs)に追加されます。ご利用ください。
■SPREAD for Windows Forms 移行ツール

移行ツールの詳細については、「移行ガイド」をご覧ください。
関連情報
旧文書番号
41716