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形式ファイルにはエクスポートできません。 |