VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 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 プロシージャを作ってしまった方がスマートでしょう。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -