Ver3.1.1まで問題なく使えていたシートをVer3.2.0で開いてみると#VALUE!があり、「エラー:データ型が正しくありません」と成ってます。
=INT(TSALARY(U17))
TSALARYは通貨型で定義したマクロです。何故か通貨型で定義したマクロの戻り値は文字列扱いっぽいです。まあ、それが仕様って事なら従うしかないのですが^^; しかし、Ver3.1.1ではINT()関数へ渡しても問題なく表示されてたのがVer3.2.0では表示されなくなったのは、少し下の方のトピックでも書かれていた仕様変更の為ですかね?
=INT(VALUE(TSALARY(U17)))
とすれば表示されますので、以降のバージョンではそれで対応って事でも良いのですが、これが正しい対処方法なのか疑問は残ります。言語又はマクロでの仕様の違いって事なのか分かりませんが、根本的な問題は、通貨型が文字列に分類される事の様な気がします。
補足:
↑で通貨型が文字列扱いされていると感じるのは、
=TSALARY(U17)
とすると、左寄せで表示されます。Calcでは通常数値扱いの場合右寄せが規定値ですよね?
Ver3.2.0でのINT()関数への引数
Re: Ver3.2.0でのINT()関数への引数
シート上の数式のInt関数の仕様が変ったということなのか、OOo Basicの仕様が変ったということのか、検証して
ないのでよくわかりませんが、どうせ修正するなら数式のほうではなく、型変換とかエラーチェックとかまでマクロの
中でやってしまうようにマクロ側を修正するというのはどうでしょうか。
参考までに。
追記:
試しに、OOo3.1でシート上の数式に「=Int("1,111")」と書いてもエラーにならずに「1111」と表示され、
OOo3.2で同じ式を書くとエラーになりますね。シート上の数式の仕様が変わったということで理解しました。
ないのでよくわかりませんが、どうせ修正するなら数式のほうではなく、型変換とかエラーチェックとかまでマクロの
中でやってしまうようにマクロ側を修正するというのはどうでしょうか。
参考までに。
追記:
試しに、OOo3.1でシート上の数式に「=Int("1,111")」と書いてもエラーにならずに「1111」と表示され、
OOo3.2で同じ式を書くとエラーになりますね。シート上の数式の仕様が変わったということで理解しました。