DioDocs for Excel
DioDocs for Excel
範囲への式の設定
機能 > 数式 > 範囲への式の設定

IRangeインタフェースのFormulaプロパティを使用して、セル範囲に数式を設定できます。

ワークシート内の範囲にカスタム名を追加し、式を設定する方法については、次のサンプルコードを参照してください。カスタム名を追加する方法の詳細については、「定義された名前」を参照してください。

C#
コードのコピー
//カスタム名を追加し、式を範囲に設定します
worksheet.Names.Add("test1", "=Sheet1!$A$1");
worksheet.Names.Add("test2", "=Sheet1!test1*2");

worksheet.Range["A1"].Value = 1;
//C6の値は1です
worksheet.Range["C6"].Formula = "=test1";
//C7の値は3です
worksheet.Range["C7"].Formula = "=test1 + test2";
//C8の値は6.283185307です
worksheet.Range["C8"].Formula = "=test2*PI()";

メモ: 式によって計算される値は、キャッシュに保存されます。 キャッシュされた値を検証するには、IRangeインタフェースのDirtyメソッドを呼び出します。このメソッドは、指定された範囲とそれに依存するすべての範囲、またはワークブック全体について、キャッシュされた値をクリアします。

参照スタイル

DioDocs for Excel は RIC1 参照スタイルをサポートするため、簡単迅速に計算を実行できます。参照スタイルを設定するには、IWorkbookインタフェースのReference Styleプロパティを使用します。

ワークブックの参照スタイルを設定する方法については、次のサンプルコードを参照してください。

C#
コードのコピー
//ワークブックの参照スタイルをR1C1に設定します
workbook.ReferenceStyle = ReferenceStyle.R1C1;

数式セルのダーティ状態更新の延期

数式によって計算された値が最初にキャッシュに保存され、セル値を取得するとキャッシュされた結果が返されます。ワークシートに数式の結果に依存する大量なデータがある場合、セル値が変更される度に数式セルが再計算され、キャッシュされた値が再度保存されます。この場合、ワークシートのパフォーマンスが影響される場合があります。

DioDocs for Excelでは、WorkbookクラスのDeferUpdateDirtyStateプロパティが提供され、 trueに設定されている場合、セルの値が変更されても数式セルのダーティ状態が即時に更新されません。

次のサンプルコードは、数式セルのダーティ状態の更新を延期する方法を示します。

C#
コードのコピー
Workbook wb = new Workbook();
wb.Open("formulas.xlsx");
//ダーティセル状態の更新を延期します
wb.DeferUpdateDirtyState = true;
for (int i = 0; i < 1000; i++)
{
    wb.Worksheets[0].Range[i, 0].Value = i;
}
//ダーティセル状態の更新を再開します
wb.DeferUpdateDirtyState = false;


使用制限

Workbook.DeferUpdateDirtyStateがtrueの場合、数式セルのダーティ状態が即時に更新されません。この時点で、チャートなど他の機能の参照範囲がダーティ状態ではないので、それらのキャッシュは更新されません。したがって、その時点で上記のような機能の状態を取得すると、取得された情報が正しくない可能性があります。