GrapeCity SPREAD for Windows Forms 12.0J
ヘッダまたはフッタからのデータへのアクセス

スプレッドシートで計算を実行する場合に、ヘッダやフッタに数式を追加できます。このような数式には、セル、セル範囲、他のワークシート、またはヘッダ/フッタ自身への参照を含めることができます。さらに、ヘッダまたはフッタ内で使用可能なデータは、ワークブック内のどのワークシートからもアクセスできます。これにより、ヘッダ/フッタ内のデータは必要に応じて、いつでもどこでも数式内で使用できます。

ワークシート内のさまざまな領域に対し、それぞれのキーワードを使用できます。これらのキーワードを数式内で使用すると、特定の領域内にあるデータを取得できます。次の表は、有効な数式でサポートされるキーワードの一覧を示します。

キーワード 説明
#Headers 列ヘッダ行領域を表します。
#Data スプレッドシートの行領域を表します。
#Totals 列フッタ行領域を表します。
#RowHeaders 行ヘッダ列領域を表します。

Formulaプロパティを使用すると、ヘッダまたはフッタに数式を追加できます。ソースワークシート内の参照先セルの値が変更されると(コピー、移動、挿入、または削除操作による変更)、数式、およびワークシート内の計算値も自動的に更新されます。

数式を適用した後は、このワークブックをフラグとともにExcelファイルに保存できます。

次の表は、Excelファイルへの保存時に適用可能なフラグの一覧と、その説明を示します。

SaveCustomRowHeadersフラグ 行ヘッダが新たな範囲に変更された状態で、行ヘッダの数式を保存します。
SaveCustomColumnHeadersフラグ 列ヘッダが新たな範囲に変更された状態で、列ヘッダの数式を保存します。
その他のフラグ データ領域だけを保存します。

構造化参照式を使用して、ヘッダまたはフッタ領域を参照することもできます。詳細については、本書の「構造化参照の使用」を参照してください。

コードの使用

ヘッダまたはフッタにFormulaプロパティを指定することで、数式を追加できます。

サンプルコード

次のサンプルコードは、さまざまな状況で数式を設定する方法を示します。

C#
コードのコピー
// シートがヘッダまたはフッタを参照します。
fpSpread1.Sheets[1].Cells[0, 0].Formula = "SUM(Sheet1[[#Headers],$A$1:$B$2])";
fpSpread1.Sheets[1].Cells[0, 2].Formula = "Sheet2[[#Totals],$A$1]";

// ヘッダまたはフッタが自身を参照します。
fpSpread1.Sheets[2].ColumnHeader.Cells[0, 3].Formula = "Sheet1[[#Headers],[$B$2]]";
fpSpread1.Sheets[2].ColumnFooter.Cells[0, 5].Formula = "Sheet1[[#Totals],[A3])";

// 列フッタがシートを参照します。
fpSpread1.ActiveSheet.ColumnFooter.Cells[0, 3].Formula = "$A$1";

 

VB
コードのコピー
' シートがヘッダまたはフッタを参照します。
fpSpread1.Sheets(1).Cells(0, 0).Formula = "SUM(Sheet1[[#Headers],$A$1:$B$2])"
fpSpread1.Sheets(1).Cells(0, 2).Formula = "Sheet2[[#Totals],$A$1]"

' ヘッダまたはフッタが自身を参照します。
fpSpread1.Sheets(2).ColumnHeader.Cells(0, 3).Formula = "Sheet1[[#Headers],[$B$2]]"
fpSpread1.Sheets(2).ColumnFooter.Cells(0, 5).Formula = "Sheet1[[#Totals],[A3])"

' 列フッタがシートを参照します。
fpSpread1.ActiveSheet.ColumnFooter.Cells(0, 3).Formula = "$A$1"

サンプルコード

次のサンプルコードは、テーブル内のデータを参照する式を行ヘッダ内に設定します。

C#
コードのコピー
// 行ヘッダがテーブルを参照します。
fpSpread1.ActiveSheet.RowHeader.Cells[9, 0].Formula = "SUM(Table1[[#Totals])";

VB
コードのコピー
' 行ヘッダがテーブルを参照します。
fpSpread1.ActiveSheet.RowHeader.Cells(9, 0).Formula = "SUM(Table1[[#Totals])"

サンプルコード

次のサンプルコードは、数式でカスタム名を使用します。

C#
コードのコピー
fpSpread1.AsWorkbook().Names.Add("name_1","Sheet2[[#Headers],$A$1:$B$5]");
fpSpread1.Sheets[1].ColumnHeader.Cells[0, 3].Formula = "name_1 + 2";

VB
コードのコピー
fpSpread1.AsWorkbook().Names.Add("name_1","Sheet2[[#Headers],$A$1:$B$5]")
fpSpread1.Sheets(1).ColumnHeader.Cells(0, 3).Formula = "name_1 + 2"
注:ワークシートのヘッダまたはフッタに設定する式では、外部参照はサポートされません。つまり、ヘッダまたはフッタの式で、他のワークブック内のセルやセル範囲を参照することはできません。また、列フッタへの参照は、XLSX形式ファイルにはエクスポートできません。
参照

 

 


Copyright © 2004 GrapeCity inc.