[リストへもどる]
一括表示

投稿時間:2002/11/28(Thu) 17:45
投稿者名:Qちゃん
Eメール:
URL :
タイトル:
iif関数
iif関数で
IIf(A = "", "", CInt(A))
としたとき
Aが""のときはエラーで落ちてしまいます。
これを回避する為にはどのようにしたらよいですか?

投稿時間:2002/11/28(Thu) 17:57
投稿者名:takk
Eメール:takk_neo@hotmail.com
URL :
タイトル:
Re: iif関数
> iif関数で
> IIf(A = "", "", CInt(A))
> としたとき
> Aが""のときはエラーで落ちてしまいます。
> これを回避する為にはどのようにしたらよいですか?

Val(A)とかにしてみたらどうでしょうか?
ほんとは普通のIF文にするのがいいんですけど。

投稿時間:2002/11/28(Thu) 18:03
投稿者名:Boar
URL :
タイトル:
Re: iif関数
> iif関数で
> IIf(A = "", "", CInt(A))
> としたとき
> Aが""のときはエラーで落ちてしまいます。
> これを回避する為にはどのようにしたらよいですか?
たぶんIIf関数の戻り値を整数型の変数に代入していると思うのですが、
IIf(A = "", 0, CInt(A))
とかにしてみては如何でしょうか?

投稿時間:2002/11/28(Thu) 19:11
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re: iif関数
> iif関数で
> IIf(A = "", "", CInt(A))
> としたとき
> Aが""のときはエラーで落ちてしまいます。

VB/VBAのIIf関数では、評価式がTrueであろうとFalseであろうと、
両方の数式を評価する仕様になっています。

例えば、
    s = IIf( 式, MsgBox("True"), MsgBox("False") )
というコードの場合、式の結果に関わらず、両方のMsgBoxが表示されます。


# ちなみに、Jet SQLのIIF関数は、一方の式しか評価しなかったりします。


> これを回避する為にはどのようにしたらよいですか?
Aが正数のみという条件であれば、
  f = IIf(A = "", "", CInt("0" & A))
という書き方もできますが……今回の場合は、IIfを使わないようにするか、
あるいは自分で Function プロシージャを作ってしまった方がスマートでしょう。

投稿時間:2002/12/10(Tue) 15:46
投稿者名:Qちゃん
Eメール:
URL :
タイトル:
Re^2: iif関数
解決しました
ありがとうございました。m(__)m