Eval 関数

【機能】
式を評価し、結果を返します。

【構文】
[result = ]Eval(expression)

引数 内容
result 省略可能です。戻り値が代入される変数を指定します。result を指定しない場合は、Execute ステートメントで代用することを検討してください。
expression 必ず指定します。任意の正しい VBScript の式を含む文字列を指定します。

【解説】
VBScript では、x = y の解釈が 2 とおりあります。1 つ目は代入ステートメントとして解釈され、y の値が x に代入されます。2 つ目は x と y の値が等しいかどうかをテストする式として解釈されます。等しい場合、result は True です。それ以外の場合、result は False です。Eval メソッドは常に 2 つ目の解釈を適用し、Execute ステートメントは常に 1 つ目の解釈を適用します。

次のコードは、Eval 関数の使用例です。
Sub GuessANumber
Dim Guess, RndNum
RndNum = Int((100) * Rnd(1) + 1)
Guess = CInt(InputBox("当たりだと思う数字を入力してください。",,0))
Do
If Eval("Guess = RndNum") Then
MsgBox "おめでとう ! 当たりです。"
Exit Sub
Else
Guess = CInt(InputBox("残念 ! もう一度。",,0))
End If
Loop Until Guess = 0
End Sub

メモ Microsoft® JScript™ では、代入と比較を混同することはありません。代入演算子 (=) は比較演算子 (==) と異なるからです。


【必要条件】
バージョン 5