ExcelマクロVBA関数
IIf関数

Excelマクロで必須のVBA関数を入門・初級・初心者向けに詳細解説
最終更新日:2013-06-14

IIf関数


IIf関数は、式の評価結果によって、2つの引数のうち1つを返します。


IIf関数

IIf(expr, truepart, falsepart)

expr
必ず指定します。
評価対象の式を指定します。

truepart
必ず指定します。
名前付き引数 expr が真 (True) の場合に返す値または式を指定します。

falsepart
必ず指定します。
名前付き引数 expr が偽 (False) の場合に返す値または式を指定します。

注意

IIf 関数では、 truepart またはfalsepart のいずれか一方だけが返されますが、評価は両方の引数に対して行われます。
このため、IIf 関数を使うと、予期しない結果が起きることがあります。
たとえば、名前付き引数 falsepart を評価した結果 0 による除算エラーが発生する場合は、名前付き引数 expr が真 (True) であってもエラーが発生します。

この問題がある限り、あまり使うべきではありません。
IIf関数は、Ifステートメントで書き直すことが出来ます。
If expr Then
  truepart
Else
  falsepart

End If

使用例.

Dim foo, bar
foo = 50
bar = 100
MsgBox IIf(foo > 0, bar / foo, foo / bar) ・・・ 2
foo = 100
bar = 50
MsgBox IIf(foo > 0, bar / foo, foo / bar) ・・・ 0.5
foo = 100
bar = 0
MsgBox IIf(foo > 0, bar / foo, foo / bar) ・・・ 「0で除算しました」のエラー、常に真偽両方の引数が評価されます。

※VBA関数一覧

VBA関数の一覧と解説です、どんな関数があるかは一度は確認しておくとをお勧めいたします。どんな関数があるだけでも知っておけば、詳細の使い方は実際に使うときに調べても良いでしょう。文字列操作…33 分岐…3 型変換…14 データ判定…11 日付時刻…20 配列…6 ファイル操作…14 数学/財務…28 その他…18 MicrosoftDocsOfficeV…



同じテーマ「マクロVBA関数」の記事

CLng関数

CLng関数は、引数をLong型(長整数型)に変換します。CLng関数 CLng(expression) 引数expressionには任意の文字列式または数式を指定します。この引数は必ず指定します。引数がLong型(長整数型)に変換できない場合はエラーとなります。
CSng関数
CSng関数は、引数をSingle型(単精度浮動小数点数型)に変換します。CSng関数 CSng(expression) 引数expressionには任意の文字列式または数式を指定します。この引数は必ず指定します。
CStr関数
CStr関数は、引数をString型(文字列型)に変換します。CStr関数 CDec(expression) 引数expressionには任意の文字列式または数式を指定します。この引数は必ず指定します。
CVar関数
CVar関数は、引数をVariant型(バリアント型)に変換します。CVar関数 CVar(expression) 引数expressionには任意の文字列式または数式を指定します。この引数は必ず指定します。
CVErr関数
CVErr関数は、指定した数値(エラー番号)を、バリアント型のエラー値に変換した値を返す変換関数です。CVErr関数 CVErr(errornumber) errornumberには、任意の数値(エラー番号)を指定します。この引数は必ず指定します。
IIf関数
TypeName関数
TypeName関数は、引数で指定された変数に関する情報を文字列で返します。TypeName関数 TypeName(varname) varname 必ず指定します。引数varnameには、ユーザー定義型の変数を除く、任意のバリアント型(Variant)の変数を指定します。
VarType関数
VarType関数は、引数に指定された変数の内部処理形式を表す整数型(Integer)の値を返します。VarType関数 VarType(varname) varname 必ず指定します。引数varnameには、ユーザー定義型の変数を除く、任意のバリアント型(Variant)の変数を指定します。
IsMissing関数
プロシージャを呼び出すときに省略可能なバリアント型(Variant)の引数がプロシージャに渡されたかどうかを調べるために使用します。IsMissing関数 IsMissing(argname) 引数argnameは必ず指定します。引数argnameには、プロシージャの省略可能なバリアント型(Variant)の引数の名前を指定します。
Choose関数
引数Indexの値に基づいて、引数リストから値を返します。Choose関数 Choose(index,choice-1,[choice-2,...,[choice-n]]) index 必ず指定します。1から選択肢の数までの値になる数式またはフィールドです。
Switch関数
式の一覧を評価し、その一覧で、Trueが指定されている最初の式に関連付けられている値または式を返します。Switch関数 Switch(expr-1,value-1,[expr-2,value-2…,[expr-n,value-n]]) expr-n 評価するバリアント型(Variant)の式を指定します。


新着記事NEW ・・・新着記事一覧を見る

VBAにおける変数のメモリアドレスについて|VBA技術解説(11月8日)
空文字列の扱い方と処理速度について(""とvbNullString)|VBA技術解説(1月7日)
Errオブジェクトとユーザー定義エラー|VBA入門(11月5日)
シングルクォートの削除とコピー(PrefixCharacter)|VBA技術解説(11月4日)
ユーザー定義型の制限とクラスとの使い分け|VBA技術解説(11月3日)
クリップボードに2次元配列を作成してシートに貼り付ける|VBA技術解説(11月1日)
VBAクラスを使ったイベント作成(Event,RaiseEvent,WithEvents)|VBA技術解説(10月31日)
VBAクラスのAttributeについて(既定メンバーとFor Each)|VBA技術解説(10月19日)
VBAの用語について:ステートメントとは|VBA技術解説(10月16日)
VBAのマルチステートメント(複数のステートメントを同じ行に)|VBA技術解説(10月14日)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.RangeとCellsの使い方|ExcelマクロVBA入門
4.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
5.変数宣言のDimとデータ型|ExcelマクロVBA入門
6.繰り返し処理(For Next)|ExcelマクロVBA入門
7.マクロって何?VBAって何?|ExcelマクロVBA入門
8.ひらがな⇔カタカナの変換|エクセル基本操作
9.空白セルを正しく判定する方法(IsEmpty,IsError,HasFormula)|VBA技術解説
10.セルに文字を入れるとは(Range,Value)|VBA入門



  • >
  • >
  • >
  • IIf関数

  • このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


    記述には細心の注意をしたつもりですが、
    間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
    なお、掲載のVBAコードは自己責任で使ってください。万一データ破損等の損害が発生しても責任は負いません。




    このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
    本文下部へ