CELFの制約事項、注意事項

2021年11月 Ver1.1※本資料の内容は予告なく変更する場合があります制約事項、注意事項①
以下では、CELFをご利用いただくにあたっての制約事項、注意事項について説明します。
CELFの導入を検討される際にご確認ください。

 実行環境のインストール
CELFをご利用いただくすべてのPCに、専用の実行環境のインストールが必要になります。
インストールには管理者権限が必要です。詳しくは以下のページを参照してください。
インストールの流れ
https://www.celf.biz/install/ Excelライクな画面について
CELFはExcelと同じような見た目・操作性の画面を提供しますが、まったく同一ではありません。リ
ボンメニューや右クリックメニュー、ショートカットキー、細部の見た目など異なる場合があります。
また、VBA、ピボットテーブル、条件付き書式、ユーザー定義書式などサポートしていない機能もあります。（代わりにCELFでは「アクション」と呼ばれる処理のブロックを並べることで様々な処理を作成することができます。サポートしていないExcelの機能もアクションで代替できる場合があります。詳しくはトライアル版などでご確認ください。）

Excelの主要な関数をサポートしますがすべてではありません。サポートしている関数は以下を参照してください。
CELFがサポートしている関数の一覧
https://cloud.celf.jp/celf-help/ja/_downloads/CELFFunction.pdf-1-Copyright © SCSK Corporation

制約事項、注意事項②
 印刷に関する注意事項
CELFで帳票を作成し印刷を行う場合は以下の点に注意してください。
• Excelと同等のヘッダやフッタの設定は行えません。ヘッダやフッタを含む複数ページの帳票を印刷する場合は1ページずつレイアウトを作成するような作り込み(※)が必要になります。
• 印刷範囲や改ページ位置はレイアウト作成時に固定で設定します。印刷範囲や改ページ位置が動的に変わる場合は作り込み(※)が必要になります。
• 印刷余白は「標準」「広い」「狭い」「とても狭い」「余白なし」から選択できます。選択肢にない余白の大きさを設定する場合はレイアウトを調整してください。

ヘッダ

請求書

余白改ページ
余白フッタ※CELFでは「アクション」と呼ばれる処理のブロックを並べることで様々な処理を作成できます。ページ数や改ページ位置が動的に変わるような帳票は、このアクションを使用して1ページずつ印刷するような処理を作成することができます。
-2-Copyright © SCSK Corporation

制約事項、注意事項③
 Excel出力に関する注意事項
CELFでExcel出力を行う場合は以下の点に注意してください。
• ExcelがインストールされていないPCでのExcel出力は行えません。
• 1ブック1シートのxlsxファイルのみ出力できます。複数シートのブックやxlsx以外の拡張子のExcelファイルは出力できません。
• 他シート参照（「=シート名!A1」のような数式）やCELF固有の関数を含むシートをExcel出力した場合、それらの数式はエラー表示になります。
• 有効桁数15桁を超える数値をExcel出力すると16桁以降は切り捨てられます。
• CELFで作成した画像やグラフはExcel出力されません。

 使用できない文字
UTF8で4バイトとなる文字（Unicodeの U+010000 ～ U+10FFFF に該当する文字）をCELFのデータベースに登録することはできません。登録時にエラーとなります。
UTF8で4バイトとなる文字には、JIS 第3・4水準漢字の一部や絵文字などが該当します。

 サーバー上で動作するプログラムクラウド版のサーバー上で動作するプログラム（バッチ処理やストアドプロシージャ、Web APIなど）は作成できません。
※オンプレ版のサーバー上でのCELF以外のプログラムの実行は自己の責任において行ってください。

-3-

Copyright © SCSK Corporation

制約事項、注意事項④ トランザクションに関する注意事項
トランザクション（※）処理中にエラーが発生した場合、データベースの更新処理は取り消されます
が、データベースの更新以外の処理（データ表示、画面遷移など）は取り消されません。
DB更新のみのため問題なし

トランザクションA
データ更新
データ削除
データ登録
データ登録
データ更新

トランザクションB
データ更新
データ削除
データ表示
画面遷移
データ更新

DB更新以外の処理は取り消されない

データベースの更新以外の処理は、データベースの更新がすべて正常終了した場合のみ実行するように作る必要があります。
※トランザクション … データベースに対する複数の変更（登録・更新・削除）を1つの処理として扱う仕組み。処理中にエラーが発生した場合、すべての変更を取り消すことでデータの整合性を保ちます。CELFでは「データ更新を一括実行する」アクションでトランザクションを使用できます。

 複数人で1つのアプリを開発する場合の注意事項
1つの画面（シート）を複数人で同時に編集することはできません。
複数人で同時に編集した場合、最初に保存したユーザーの変更が反映され、後から保存を行ったユー
ザーにはエラーメッセージが表示されます。

-4-

Copyright © SCSK Corporation

制約事項、注意事項⑤ 数値に関する注意事項①精度と誤差CELFはExcelと同様、数値を浮動小数点数と呼ばれる形式で扱います。浮動小数点数は非常に広い範囲の数値を扱うことができる反面、15桁以上（小数点以下の桁数も含む）の数値では誤差が発生する場合があります。また、小数点以下を含む数値において非常に小さな端数が生じる場合があります。
（誤差や端数の大きさはExcelと異なる場合があります）

誤差誤差②小数点以下の桁数
CELFで扱うことのできる小数点以下の桁数は最大6桁です。6桁を超える小数点以下の桁は丸められます。

-5-

Copyright © SCSK Corporation

制約事項、注意事項⑥
 性能に関する注意事項
データ量や処理量によっては、CELFで作ったアプリで十分な性能が得られない場合があります。
以下に、CELFにおいて性能上の問題が起きやすいケースを説明します。これらに該当する場合は、あらかじめトライアル版で検証するなど、性能が許容できる範囲内であることをお確かめください。
なお、性能はお使いのPCのスペック、ネットワーク環境、アプリの作り方などによって変動します。
本番運用と同じ条件でご確認ください。
※説明中に記載の性能は Intel Core i7 3.4GHz、メモリ8GBのPCで計測した値です①多数のデータを画面上に表示、または入力する大量データ（値、書式）

画面上に表示、または入力するデータが多いほどアプリの起動や処理に時間がかかります。例えば、30万個のデータ（100項目のデータ3,000件など）を表示するアプリでは、約10秒（※）の時間がかかる場合があります。
※起動時にデータベースからデータを取得して表示するアプリの起動時間。データ数以外に、書式設定されたセルの数、ネットワークの性能、PCのスペックなどによって時間は変動します。

-6-

Copyright © SCSK Corporation

制約事項、注意事項⑦
 性能に関する注意事項（続き）②時間のかかる処理を繰り返し実行する
CELFでは同じ処理を繰り返し行う「繰り返し処理」を作成することができますが、繰り返し処理は処理時間が増加しやすいため注意してください。（0.1秒かかる処理を1,000回繰り返す場合は100秒の時間がかかります）
時間がかかりやすい繰り返し処理の例として、複数件の入力データに対するマスタの存在チェックがあります。データベースアクセスには比較的時間がかかるため、データの件数分繰り返し処理でマスタ存在チェックを行うと、件数によってレスポンスに大きな時間がかかります。
③複数のテーブルを結合して集計やソートを行う
データベースのデータの集計やソートは、データの内容や量によって大きな処理時間がかかる場合があります。特に、複数のテーブルを結合して集計やソートを行う場合は注意が必要です。これは、集計やソートのために、データベース内部で最大「結合する各テーブルのデータ件数を掛け算した件数のデータ」を処理する必要があるためです。例えば、データ件数が100件のテーブルA、200件のテーブルB、300件のテーブルCの3つのテーブルを結合する場合、最大で100×200×300＝6,000,000件のデータが処理されます。1つ1つのテーブルのデータ件数が少ない場合であっても、結合するテーブルが増えることによって処理の必要なデータ件数が急激に増加し、レスポンスが著しく悪化する場合があります。

100件

200件

300件

-7-

6,000,000件

Copyright © SCSK Corporation

制約事項、注意事項⑧
 性能に関する注意事項（続き）④多数の数式を使用する=IF(AND(J3<>"",K3<>""),K3/J3,"")=IF(AND(K3<>"",L3<>""),L3/K3,"")
大量の数式を多数使用すると、その計算に無視できない時間がかかる場合があります。例えば10万の関数（四則演算や比較演算=IF(AND(J5<>"",K5<>""),K5/J5,"")=IF(AND(K5<>"",L5<>""),L5/K5,"")も含む）の計算には約2秒の時間がかかります（※）。
=IF(AND(J6<>"",K6<>""),K6/J6,"")=IF(AND(K6<>"",L6<>""),L6/K6,"")関数を多く使用する例として入力チェックがあります。もし1=IF(AND(J7<>"",K7<>""),K7/J7,"")=IF(AND(K7<>"",L7<>""),L7/K7,"")
件のデータに対して100個の関数を使用した入力チェックを行=IF(AND(J8<>"",K8<>""),K8/J8,"")=IF(AND(K8<>"",L8<>""),L8/K8,"")う場合、データが2,000件あると100×2,000＝20万の関数を=IF(AND(J9<>"",K9<>""),K9/J9,"")=IF(AND(K9<>"",L9<>""),L9/K9,"")計算することになり、約4秒の時間がかかる可能性があります。
=IF(AND(J4<>"",K4<>""),K4/J4,"")=IF(AND(K4<>"",L4<>""),L4/K4,"")
数式=IF(AND(J10<>"",K10<>""),K10/J10,"")=IF(AND(K10<>"",L10<>""),L10/K10,"")=IF(AND(J11<>"",K11<>""),K11/J11,"")=IF(AND(K11<>"",L11<>""),L11/K11,"")※時間は参考値です。使用する関数、数式の⾧さ、PCのスペックなどによって変動します。また、同じSUM関数であっても10個の数値を合計=IF(AND(J12<>"",K12<>""),K12/J12,"")=IF(AND(K12<>"",L12<>""),L12/K12,"")する場合と、1,000個の数値を合計する場合とで計算時間は異なります。
=IF(AND(J13<>"",K13<>""),K13/J13,"")=IF(AND(K13<>"",L13<>""),L13/K13,"")=IF(AND(J14<>"",K14<>""),K14/J14,"")=IF(AND(K14<>"",L14<>""),L14/K14,"")⑤その他
性能に関する最新の注意事項については以下のページを参照してください。
アプリのパフォーマンス
https://cloud.celf.jp/celf-help/ja/texts/other/performance/performance.html-8-

Copyright © SCSK Corporation

制約事項、注意事項⑨ その他
よくあるご質問も参照してください。
https://www.celf.biz/inquiry/
クラウド版をご検討の場合は「クラウドサービス仕様書／Service Level Agreement」も合わせてご確認ください。
https://www.celf.biz/wp-content/uploads/files/Service_Level_Agreement.pdf-9-Copyright © SCSK Corporation