Skip to main content

4-6-1-1 出力するExcelファイルの設定をする

帳票をExcelファイルで出力する場合、行の高さや列の幅、Excelの計算式や関数を、フィールドのコメントで指定できます。

行の高さや列の幅を指定する

行の高さや列の幅を指定するには、フィールドのコメント欄に、以下のように入力します。

指定する値

コメントの記述

説明

指定例

行の高さ

CELLHEIGHT=n

nに行の高さをポイントで指定します。

CELLHEIGHT=100

列の幅

CELLWIDTH=n

nに列の幅をポイントで指定します。

CELLWIDTH=200

行の高さ、列の幅

CELLHEIGHT=n CELLWIDTH=n

同時に指定する場合は、半角スペースで区切って指定します。

CELLHEIGHT=100 CELLWIDTH=200

sop92_p005.png

フィールドのコメントに行の高さと列の幅を指定した例

注意

  • 行の高さや列の幅を指定した場合、設計レイアウトとは異なる出力になります。指定した値によっては、ページ内に収まらない場合もありますので、注意して値を指定してください。

  • 行の高さや列の幅を指定したフィールドにデータが出力されない場合、指定した値は適用されません。

Excelの計算式や関数を指定する

Excelの計算式や関数を指定するには、フィールドのコメント欄に、以下のように入力します。

FUNCTION=<Excelの計算式や関数>
sop92_p006.png

フィールドのコメントにExcelの数式を指定した例

<Excelの計算式や関数>に指定した文字列がExcelの数式として設定されます。

<Excelの計算式や関数>で使用するセルの指定は、Excelのセル参照を直接指定する方法と、XML様式ファイルのフィールド名を指定する方法が可能です。

サブフォームのレコード上のフィールドや繰り返しフィールドで指定すると、そのフィールドが展開されるすべてのセルに対して数式が適用されます。

参考

セル参照は、Excelのワークシートでセルの位置を表す座標です。例えば、「列B」と「行3」が交わる位置のセル参照は「B3」です。

Excelのセル参照を直接指定する

あらかじめ、該当フィールドの出力されるセル位置が分かる場合に使用します。

「FUNCTION=」以降の文字列が、Excelの数式として該当セルに設定されます。

1.
FUNCTION=A1*B1/C1
FUNCTION=SUM(A1:B1)


XML様式ファイルのフィールド名を指定する

指定したXML様式ファイルのフィールド名から、そのフィールドが出力されるセル位置を判断し、そのフィールド名をExcelのセル参照へ置換して、Excelの数式として該当セルに設定されます。

指定するフィールドが、レコード内や繰り返しフィールドに設計している場合は、出力される位置が可変となります。このため、指定したフィールド名は、出力された行数分のセル参照の配列へ置換されます。

フィールド名は、[]で囲んで指定します。

2.
FUNCTION=[Field1]*[Field2]/[Field3]
FUNCTION=SUM([Field1]:[Field2])


[フィールド名]に指定したフィールドの設計位置により、以下のように設定されます。

  • 固定フィールド(繰り返しフィールドやレコード領域ではないフィールド)

    該当フィールドが出力されるExcel上のセル位置に、1つのセル参照に置換されます。

  • 可変フィールド(繰り返しフィールドやレコード領域のフィールド)

    • 固定フィールドからの参照の場合

      出力された明細行数分のセル参照の配列に置換されます。

      sop92_p009.png
    • 同じ可変行からの参照の場合

      参照元と同一明細行にあるセルのみ参照するように、1つのセル参照に置換されます。

      sop92_p008.png
    • 異なる可変行からの参照の場合

      出力された明細行数分のセル参照の配列に置換されます。

      sop92_p007.png

注意

  • コメント欄を利用する他の機能(FONTSIZEやCELLHEIGHTなど)と併用する場合は、半角スペースで区切り、最後尾に指定してください。

  • 引数として配列が指定できる関数以外は、[フィールド名]に可変フィールドを指定しないでください。

    例えば、ExcelのCHAR()関数などは引数を一つのみ指定できますが、可変フィールドを引数に指定した場合、Excelファイルを開くとエラー値(#VALUE!)で表示されます。

  • セル参照は1ページ内でのみ有効になります。ページを跨るセル参照はできません。

    例えば、2ページの明細行を出力し、2ページ目に、FUNCTION=SUM([フィールド名])にて合計を印字する場合、2ページ目に出力された明細行のみが統計処理の対象データとして扱われます。

  • 本機能で設定するExcelのSUMなどの統計関数は、SVFのレポートライターモードの改ページやキーブレイクなどとは連動しません。

    改ページ単位やキーブレイク単位などの制御で、統計処理をする場合は、SVFの統計関数を利用してください。

  • 本機能で使用できるExcel関数は、Apache POIに依存します。Apache POIでサポートされていないExcel関数を指定した場合には、例外が発生します。また、Excelファイルを開いたときのExcel関数の処理はExcelの仕様に依存します。使用できる関数は次のとおりです。

    ABS、ACOS、ACOSH、ADDRESS、AND、ASIN、ASINH、ATAN、ATAN2、ATANH、AVEDEV、AVERAGE、CEILING、CHAR、CHOOSE、CLEAN、COLUMN、COLUMNS、COMBIN、CONCATENATE、COS、COSH、COUNT、COUNTA、COUNTBLANK、COUNTIF、DATE、DAY、DAYS360、DEGREES、DEVSQ、DOLLAR、ERROR.TYPE、EVEN、EXACT、EXP、FACT、FALSE、FIND、FLOOR、FV、HLOOKUP、HOUR、HYPERLINK、IF、INDEX、INDIRECT、INT、IRR、ISBLANK、ISERROR、ISEVEN、ISLOGICAL、ISNA、ISNONTEXT、ISNUMBER、ISODD、ISREF、ISTEXT、LARGE、LEFT、LEN、LN、LOG、LOG10、LOOKUP、LOWER、MATCH、MAX、MAXA、MEDIAN、MID、MIN、MINA、MINUTE、MOD、MODE、MONTH、MROUND、NA、NETWORKDAYS、NOT、NOW、NPER、NPV、ODD、OFFSET、OR、PI、PMT、POISSON、POWER、PRODUCT、PV、RADIANS、RAND、RANDBETWEEN、RANK、RATE、REPLACE、RIGHT、ROUND、ROUNDDOWN、ROUNDUP、ROW、ROWS、SEARCH、SECOND、SIGN、SIN、SINH、SMALL、SQRT、STDEV、SUBSTITUTE、SUBTOTAL、SUM、SUMIF、SUMIFS、SUMPRODUCT、SUMSQ、SUMX2MY2、SUMX2PY2、SUMXMY2、T、TAN、TANH、TEXT、TIME、TODAY、TRIM、TRUE、TRUNC、UPPER、VALUE、VAR、VARP、VLOOKUP、WEEKDAY、WORKDAY、YEAR、YEARFRAC