PRIMG0001
 毎週金曜日、プログラミングのちょっとした講座を記しています。
 ここでは、小学校から「プログラミング」が必須項目になってしまったため、お父さん・お母さん・おじいちゃん・おねえちゃんが子供に「プログラミング」教えることができるように、ここでこっそりと勉強してしまおうという企画です。
 今週は評価関数です。
例えば、InputBoxから入力した数字が100以上の場合は「100以上です」、100より小さい場合は「100より小さいです。」といった表示をさせるプログラムを作成する場合、今まで習ってきた命令でプログラムを組むと次のようになります。


Sub Sample()
    Dim inp As String
 Dim inp2 as integer

    inp = InputBox("数字を入力してください。")
    inp2 =  CInt(inp)  '文字を整数に変換
    If inp2 >= 100
    Then
       MsgBox "100以上です。"
 else
      MsgBox "100より小さいです。"
     end if
End Sub


となります。

 上記のCInt(inp)というのは、文字の値を整数に変換する関数です。変数を変換する場合、次のような関数があります。



CBool ブール型(Boolean)へのデータ変換
CByte バイト型(Byte)へのデータ変換
CCur 通貨型(Currency)へのデータ変換
CDate 日付型(Date)へのデータ変換
CDbl 倍精度浮動小数点実数型(Double)へのデータ変換
CInt 整数型(Integer)へのデータ変換
CLng 長整数型(Long)へのデータ変換
CSng 単精度浮動小数点実数型(Single)へのデータ変換
CVar バリアント型(Variant)へのデータ変換
CStr 文字列型(String)へのデータ変換

 ある特定の条件を評価し、その結果が正しい場合と違っている場合で引数を変数に渡す場合、「IIF」関数というのがあります。この「IIF」関数、一見「IF」文を見た目が似ていますが、「IF」文とは違い、分岐ではありません。「IIF」関数は次のような使い方をします。

 値を受け取る変数 = IIF(条件,条件に合っている場合に渡す値または式,条件が違っている場合に渡す値または式)

最初のプログラムをIIF関数を使用した場合、次のようになります。

Sub Sample()
    Dim inp As String
    Dim msg as String
 Dim inp2 as integer

    inp = InputBox("数字を入力してください。")
    inp2 =  CInt(inp)  '文字を整数に変換
    msg = IIf (inp2 >= 100, "100以上です。","100より小さいです。")
    MsgBox msg 

End Sub

となります。

このように、IIF関数は式を評価してそれによって真の場合の値や式、偽の場合の値や式を変数に渡すことができますので、プログラムがすっきりします。


 本日は新年度につき、みなさんも忙しいと思いますので短い受講で終わります。また来週。