作成日: 2020/03/16 最終更新日: 2020/03/16
文書種別
技術情報
詳細
ロックに関連するプロパティ(Protect/Locked)はデフォルト値がバージョン11.0Jで変更されました。
詳細については移行ガイドの以下のトピックをご参照ください。
11.0.4500.2012での変更点 > SheetView
この仕様変更に対応するため、旧バージョンで作成したプロジェクトを移行ツールで変換すると、以下のプロパティにデフォルトと異なる値が設定されます。
※厳密には、互換機能(LegacyBehaviors)でProtectを含むAllが指定されることにより、この設定値になります。
ただし、シートの設定(SheetView.DefaultStyle.Locked)がFalseに変更されても、以下のオブジェクトのLockedプロパティはデフォルト値であるTrueのままになっています。
これは互換機能を有効にした場合の仕様上の動作です。
上記のプロパティは明示的に設定されていなければ、Trueであっても実際にはロックされていない状態になります。Falseに変更する必要はありません。
また、Lockedプロパティのデフォルト値そのものをFalseに変更することはできません。
※注意事項
コード上で明示的にLockedプロパティにTrueを指定すると、プロパティの値に変化はなくても、その時点から個々のオブジェクトがロックされます。
そのため、移行元のプロジェクトでLockedプロパティの設定値を他のオブジェクトに反映するような処理を行っている場合には、動作が変化する可能性があります。
◆問題となる処理の例
このような処理を行っている場合には、GetStyleInfoメソッドで実際のロック状態を確認してから他のオブジェクトに反映するように処理を変更してください。
◆変更例
詳細については移行ガイドの以下のトピックをご参照ください。
11.0.4500.2012での変更点 > SheetView
この仕様変更に対応するため、旧バージョンで作成したプロジェクトを移行ツールで変換すると、以下のプロパティにデフォルトと異なる値が設定されます。
プロパティ | 移行ツール実行後の設定値(※) | 11.0J以降のデフォルト値 | 10.0J以前のデフォルト値 |
---|---|---|---|
SheetView.Protect | True | False | True |
StyleInfo.Locked(SheetView.DefaultStyle.Locked など) | False | True | False |
※厳密には、互換機能(LegacyBehaviors)でProtectを含むAllが指定されることにより、この設定値になります。
ただし、シートの設定(SheetView.DefaultStyle.Locked)がFalseに変更されても、以下のオブジェクトのLockedプロパティはデフォルト値であるTrueのままになっています。
オブジェクト | 取得例 |
---|---|
列 | fpSpread1.ActiveSheet.Columns[0].Locked |
行 | fpSpread1.ActiveSheet.Rows[0].Locked |
セル | fpSpread1.ActiveSheet.Cells[0, 0].Locked |
これは互換機能を有効にした場合の仕様上の動作です。
上記のプロパティは明示的に設定されていなければ、Trueであっても実際にはロックされていない状態になります。Falseに変更する必要はありません。
また、Lockedプロパティのデフォルト値そのものをFalseに変更することはできません。
※注意事項
コード上で明示的にLockedプロパティにTrueを指定すると、プロパティの値に変化はなくても、その時点から個々のオブジェクトがロックされます。
そのため、移行元のプロジェクトでLockedプロパティの設定値を他のオブジェクトに反映するような処理を行っている場合には、動作が変化する可能性があります。
◆問題となる処理の例
// A1セルがロックされているとき、B列をロックする
if (fpSpread1.ActiveSheet.Cells[0, 0].Locked)
{
fpSpread1.ActiveSheet.Columns[1].Locked = true;
}
このような処理を行っている場合には、GetStyleInfoメソッドで実際のロック状態を確認してから他のオブジェクトに反映するように処理を変更してください。
◆変更例
// GetStyleInfoメソッドで実際のロック状態を確認する
if (fpSpread1.ActiveSheet.GetStyleInfo(0, 0).Locked)
{
fpSpread1.ActiveSheet.Columns[1].Locked = true;
}
関連情報
旧文書番号
85020