GcSpreadSheetは、ワークシートでの数式の自動再計算および自動更新に対応しています。数式は、以下の場合、自動的に再計算され更新されます。
- 依存するセルの値が変更される場合
- 行列の追加・削除の場合
- データの移動、セル範囲の切り替えなどデータの位置を変更するワークシート操作が実行される場合
Calculation列挙体は、表計算エンジンがワークシートの数式を計算する方法を制御します。この列挙体の値を3つのモードのManual、AutomaticおよびSemiautomaticのいずれかに設定できます。
Calculation列挙体がAutomaticに設定されている場合、数式の自動再計算と自動更新が有効になり、以下のルールが提供されます。
- 数式が変更されたセル範囲の一部ではない場合、相対セル参照が更新されます。
例えば、C3セルにA1セルを絶対参照する数式があり、シートの先頭に行が挿入されたとします。行の挿入後、A1セルはA2セルに移動するので、数式の絶対参照がA2セルを参照するように自動的に更新されます。ワークシートが数式を自動更新しなかった場合、数式は間違ったデータを参照します。
- 数式が変更されたセル範囲の一部でない場合、相対セル参照が更新されます。
例えば、C1セルを相対参照する数式がC3セルに設定されている場合、C3セルは自身より2つ上のセルを参照しています。C1セルとC3セルの間に1行、挿入したとします。行の挿入後、C3セルはC4セルに移動するので、数式の相対参照が、自身より3つ上のC1セルを参照するよう、自動的に更新されます。
条件によって、数式を自動的に更新する必要がない場合があり、Calculation列挙体をManualモードに設定できます。この場合、ワークシートで依存セルの内容が変更されても、数式は自動的に更新されません。
次のサンプルコードは、Calculation列挙体で各モードを使用して、ワークシートでの数式の計算および更新を実行する方法を示します。