MESCIUS SPREAD for Windows Forms 17.0J > 開発者ガイド > 数式 > 数式のオートフォーマット |
Spread for WinFormsでは、Excel2019およびExcel for Office 365と同様に、数式によって返される適切なデータ型に基づいて数式値を自動的に書式設定できます。本機能は、数式の戻り値に基づいてセルに自動的に書式設定を適用する場合に役立ちます。
次の図は、オートフォーマット機能が有効になっている場合に数式が自動的に書式設定されることを示します。
メモ:オートフォーマット機能は、フラットスタイルモード(LegacyBehaviors.Styleを使用しない場合)で数式をセルに直接入力した場合にのみ機能します。フラットスタイルモードでセルを編集すると、AutoFormattingプロパティに関係なく、検出されたセル書式が適用されます。 |
日付書式 - 日付値を返す数式関数(たとえば、TODAY、DATEなど)を使用できます。AutoFormattingプロパティを Trueに設定すると、Excelの場合と同様にスプレッドシートのセルに自動的に日付書式が適用されます。
数値書式 - 数値を返す数式関数(たとえば、SUM、 SUBTOTAL、RATE、IRR、DB、FVなど)を使用できます。AutoFormattingプロパティをTrueに設定すると、Excelの場合と同様にスプレッドシートのセルに自動的に数値書式が適用されます。
セル参照書式 - 数式でセル参照を使用できます。AutoFormattingプロパティをTrueに設定すると、Excelの場合と同様にスプレッドシートのセルに自動的にセル参照の書式が適用されます。
たとえば、上記の図では、AutoFormattingプロパティをFalseに設定すると、セルC4は日付を整数値(不正な書式)として表示します。ただし、AutoFormattingプロパティをTrueにすると、日付が正しい書式(MM/DD/YY)で表示されます。
同様に、RATE数式を含むセルC5はデータをパーセンテージ書式で表示しませんが、オートフォーマット機能を有効にすると、セル値がパーセンテージ書式で表示されます。
また、セル範囲(A2:A6)に適用されたAVERAGE数式を含むセルC2およびMEDIAN数式を含むセルC3は、それらが依存しているセルの書式で表示されます。
次のサンプルコードは、AutoFormattingプロパティをtrueに設定して、オートフォーマット機能を有効にします。
C# |
コードのコピー
|
---|---|
// オートフォーマットを有効にします。 fpSpread1.AsWorkbook().Features.AutoFormatting = true; |
Visual Basic |
コードのコピー
|
---|---|
' オートフォーマットを有効にします。 fpSpread1.AsWorkbook().Features.AutoFormatting = True |
次のサンプルコードは、数式にオートフォーマット機能を適用します。
C# |
コードのコピー
|
---|---|
//オートフォーマットを有効にします。 fpSpread1.AsWorkbook().Features.AutoFormatting = true; fpSpread1.AsWorkbook().ActiveSheet.Cells[0, 0].Text = "AutoFormattingは「True」に設定されています。"; fpSpread1.ActiveSheet.Cells[0, 0].BackColor = Color.Thistle; fpSpread1.ActiveSheet.AddSpanCell(0, 0, 1, 3); fpSpread1.AsWorkbook().ActiveSheet.Cells[1, 0].Text = "$0.20"; fpSpread1.AsWorkbook().ActiveSheet.Cells[2, 0].Text = "$0.10"; fpSpread1.AsWorkbook().ActiveSheet.Cells[3, 0].Text = "$0.25"; fpSpread1.AsWorkbook().ActiveSheet.Cells[4, 0].Text = "$0.20"; fpSpread1.AsWorkbook().ActiveSheet.Cells[5, 0].Text = "$0.30"; fpSpread1.AsWorkbook().ActiveSheet.Cells[1, 1].Text = "AVERAGE(A2:A6)"; fpSpread1.AsWorkbook().ActiveSheet.Cells[2, 1].Text = "MEDIAN(A2:A6)"; fpSpread1.AsWorkbook().ActiveSheet.Cells[3, 1].Text = "Today()"; fpSpread1.ActiveSheet.Columns[1, 3].Width = 130; // 数式セルは、参照しているセルに応じて書式設定されます。 // セル参照書式 fpSpread1.AsWorkbook().ActiveSheet.Cells["C2"].Formula = "AVERAGE(A2:A6)"; fpSpread1.AsWorkbook().ActiveSheet.Cells["C3"].Formula = "MEDIAN(A2:A6)"; // 数値書式 fpSpread1.AsWorkbook().ActiveSheet.Cells["B5"].Text = "RATE(60,-5,150)"; fpSpread1.AsWorkbook().ActiveSheet.Cells["C5"].Formula = "RATE(60,-5,150)"; // 日付書式 fpSpread1.AsWorkbook().ActiveSheet.Cells["C4"].Formula = "Today()"; |
Visual Basic |
コードのコピー
|
---|---|
Private Sub SurroundingSub() 'オートフォーマットを有効にします。 fpSpread1.AsWorkbook().Features.AutoFormatting = True fpSpread1.AsWorkbook().ActiveSheet.Cells(0, 0).Text = "AutoFormattingは「True」に設定されています。" fpSpread1.ActiveSheet.Cells(0, 0).BackColor = Color.Thistle fpSpread1.ActiveSheet.AddSpanCell(0, 0, 1, 3) fpSpread1.AsWorkbook().ActiveSheet.Cells(1, 0).Text = "$0.20" fpSpread1.AsWorkbook().ActiveSheet.Cells(2, 0).Text = "$0.10" fpSpread1.AsWorkbook().ActiveSheet.Cells(3, 0).Text = "$0.25" fpSpread1.AsWorkbook().ActiveSheet.Cells(4, 0).Text = "$0.20" fpSpread1.AsWorkbook().ActiveSheet.Cells(5, 0).Text = "$0.30" fpSpread1.AsWorkbook().ActiveSheet.Cells(1, 1).Text = "AVERAGE(A2:A6)" fpSpread1.AsWorkbook().ActiveSheet.Cells(2, 1).Text = "MEDIAN(A2:A6)" fpSpread1.AsWorkbook().ActiveSheet.Cells(3, 1).Text = "Today()" fpSpread1.ActiveSheet.Columns(1, 3).Width = 130 ' 数式セルは、参照しているセルに応じて書式設定されます。 ' セル参照書式 fpSpread1.AsWorkbook().ActiveSheet.Cells("C2").Formula = "AVERAGE(A2:A6)" fpSpread1.AsWorkbook().ActiveSheet.Cells("C3").Formula = "MEDIAN(A2:A6)" ' 数値書式 fpSpread1.AsWorkbook().ActiveSheet.Cells("B5").Text = "RATE(60,-5,150)" fpSpread1.AsWorkbook().ActiveSheet.Cells("C5").Formula = "RATE(60,-5,150)" ' 日付書式 fpSpread1.AsWorkbook().ActiveSheet.Cells("C4").Formula = "Today()" End Sub |