3日がかりのその仕事、3分で終わらせる方法教えます!
パソコンスキルの心技体

IIF関数 – Excelマクロ・VBA

2012年3月8日
  • このエントリーをはてなブックマークに追加
  • follow us in feedly

エクセルマクロ・VBA達人養成塾 小川です。

またしても、マイナーな関数のご紹介。

IIF関数というものがあります。

何かというと、

dim hensu
If hoge Then
hensu=”OK”
Else
hensu=”NG”
End If

みたいなことを、一文でやってしまうようなもの。

書式は、以下。

IIf(expr, truepart, falsepart)

「expr」に評価式を。
「truepart」に、その式がtrueを返したときに、IIF関数が返す戻り値を。
「falsepart」に、その式がtrueを返したときに、IIF関数が返す戻り値を指定します。

以下、例。

こんなデータがありまして…↓。


|A列 |B列 |C列 |
----------------------------------
1 行目 |name |score|eval |
----------------------------------
2 行目 |埼玉祥子 |62 | |
----------------------------------
3 行目 |石川裕之 |65 | |
----------------------------------
4 行目 |倉敷健作 |84 | |
----------------------------------
5 行目 |能代知子 |78 | |
----------------------------------
6 行目 |福島昌浩 |91 | |
----------------------------------
7 行目 |滋賀真里恵|53 | |
----------------------------------
8 行目 |愛媛篤史 |53 | |
----------------------------------
9 行目 |米沢昌浩 |80 | |
----------------------------------
10行目 |青森幸平 |58 | |
----------------------------------
11行目 |青森まなみ|55 | |
----------------------------------

そのとき、C列に、合格なり不合格なり、と記入したい。

通常のIf文を使うと、こうなります↓。

Sub setevalifthen()
Dim c As Long
For c = 2 To 11
If Range(“B” & c).Value > 75 Then
Range(“C” & c).Value = “合格”
Else
Range(“C” & c).Value = “不合格”
End If
Next
End Sub

IIF関数を使うと、以下のようになります。

Sub seteval()
Dim c As Long
For c = 2 To 11
Range(“C” & c).Value = IIf(Range(“B” & c).Value > 75, “合格”, “不合格”)
Next
End Sub

慣れないととっつきにくいですが、慣れると便利です。

キーワード

コメント

4 thoughts on “IIF関数 – Excelマクロ・VBA

  1. 2. ありがとうございます
    また、ひとつ引き出し増えました。
    しかし、ここ最近の小川さんのvalue.text.formulaなど見ていると、教科書の内容を、見事に実務に当てはめて解説して頂いてますよね。エクセル版 池上彰さんのようです。
    本当ありがとうございます
    http://ameblo.jp/akkiii2000/

  2. 4. Re:ありがとうございます
    >あっきーさん

    ありがとうございます。
    池上彰さんは言いすぎですが、実践に落とし込みやすいと感じていただけたなら、目的は達成です。

    今後とも、よろしくお願いいたします ヾ(´ー`)ノ
    http://ameblo.jp/kanjizaibosatsu/

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

最新の記事

人気記事

最新記事

カテゴリ

最新コメント

タグクラウド