Tips-関数編

ここでは、意外と知られてないけど、覚えておくとちょっと便利な関数を紹介しています。これらの関数は、別に知らなくとも仕事はできますが、知っているとちょっと得します。

IIf

VBでは、こんなコーディングってよく書きますよね!

If i > 100 Then
    i = 100
Else
    i = i + 1
End If

これは、IIf を使用すると一行で書けます。

i = IIf( i > 100, 100, i + 1)

すなわち、条件によって、ある変数に値を設定したい場合に便利です。
ちなみに、IIf は、C言語を知っている人には吉報で、次のコーディングをVBで実現できます。

i = (i < 0) ? 100 : i+1;

Choose

この関数は、IIf の拡張版を思ってよいですが、指定された値によって変数に値を設定したい場合に便利です。

GetChoice = Choose(Ind, "One", "Two", "Three")

コーディングから想像できるように、ind の値が 1 の場合は GetChoice に "One" 、2 の場合は "Two"、3 の場合には"Three" が設定されます。
Select Case で書くと以下のように、長くなってしまいます。

Select Case Ind
Case 1
    GetChoice = "One"
Case 2
    GetChoice = "Two"
Case 3
    GetChoice = "Three"
End Select

Switch

この関数も、C言語を知っている人にはちょっと吉報です。基本的には、Select Case と同じですが、C言語では Switch は馴染みがあるので、ほんのちょっとお得です。書き方は次の通り。 

Matchup = Switch(CityName = "ロンドン", "英語", CityName _
= "ローマ", "イタリア語", CityName = "パリ", "フランス語")

Switch は、引数に、条件と条件が成立した場合の値を交互に指定し、成立した条件の値を返します。
整理して書くと次の通りです。

Matchup = Switch( _
    CityName = "ロンドン", "英語", _
    CityName = "ローマ", "イタリア語", _
    CityName = "パリ", "フランス語" _
)

Array

N88Basic 等で、Read、Data文を知っている人には、吉報です。配列に初期値を設定したい場合などに便利です。
Array 関数を使用すると、Variant 型の変数に Variant 型の配列が、返されます。この Variant 型の配列を使用して、各配列を初期化します。

Dim varWeek As Variant
Dim strWeeks(7) As String
Dim i As Integer

varWeek = Array("Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun")


For i  = 0 To 6
    strWeeks(i) = varWeek(i)
Next

同様なコーディングを Choose でもできます。

Dim strWeeks(7) As String
Dim i As Integer

For i  = 0 To 6
    strWeeks(i) = Choose(i + 1, "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun")
Next

(注意) Array 関数を使用して作成した配列のインデックスの最小値は、常に 0 です。ほかの種類の配列とは異なり、Option Base ステートメントに最小値を指定しても影響を受けません。

(注意)このページの内容は、Visual Basic5.0(SP3) を対象に記述されています。他のバージョンでは、対応できないこともあるので、ご注意願います。

(注意) ここでの情報については、あくまでも各自の責任にて、充分にテストを行ってご使用ください。内容に関する質問については、回答できる保証がありませんので、予めご了承願います。