数式を使った検証設定が正常に動作しない場合がある

文書番号 : 41467     文書種別 : 既知の問題     登録日 : 2017/12/28     最終更新日 : 2017/12/28
文書を印刷する
対象製品
SpreadJS(Ver.10.x.x -)
ステータス
回避方法あり
詳細
Spread.Sheetsの検証設定に以下の数式を設定し書式設定として"@"を指定すると、検証が正常に機能しない現象が発生します。

【再現手順】
1. Spread.Sheets の FormulaValidator に以下の数式を設定します

IF(ISNUMBER(0+INDIRECT(ADDRESS(ROW(), COLUMN()))), AND(VALUE(INDIRECT(ADDRESS(ROW(), COLUMN()))) < 100, TRUNC(VALUE(INDIRECT(ADDRESS(ROW(), COLUMN()))), 6) = VALUE(INDIRECT(ADDRESS(ROW(), COLUMN()))) ), INDIRECT(ADDRESS(ROW(), COLUMN()))="任意の列名")

上記数式の機能は以下のとおりです

・数値入力を制限 - 整数2ケタ以下、小数第6位まで入力可能
・文字「任意の列名」は入力可能

2. 任意のセルに上記のFormulaValidatorを設定します。
3. 2.セルに書式設定として"@"を設定します。
4. 2.セルに数値「01234567.012345」を入力します

【動作結果】
整数2ケタ以下、文字「任意の列名」は入力可能の条件で検証が機能するものの、小数第6位まで入力については検証が機能しない現象が発生します。上記【再現手順】の例では、本来入力可能であるべき「01234567.012345」が入力できない現象が発生します。
回避方法

本現象を完全に回避する方法はありませんが、セルの書式設定"@"を削除することで、検証機能を正常に動作させることが可能です。