Vbscript-miscellaneous-statements
VBScriptのその他のステートメント
VBScriptには、開発者が効率的なスクリプトを開発するのに役立つ他の重要なステートメントがいくつかあります。 次の表に、このような重要なステートメントのセットを示します。 この章では、これらの各ステートメントを例とともに詳細に説明します。
Category | Function Name/Statement Name |
---|---|
Options | Option Explicit |
Script Engine ID | ScriptEngine |
variants | IsArray, IsEmpty, IsNull, IsNumeric, IsObject, TypeName |
Expression | Eval,Execute |
Control Statement | With…End With |
Math Function | Randomize |
明示的なオプション
*Option Explicit* は、コードの一部で使用される前に、開発者が *Dim* ステートメントを使用して変数を宣言することを強制します。
構文
Option Explicit
例
*Option Explicit* を使用し、変数を宣言しない場合、インタープリターはエラーをスローします。
<!DOCTYPE html>
<html>
<body>
<script language = "vbscript" type = "text/vbscript">
Option Explicit
Dim x,y,z,a
x = 10
y = 20
z = fnadd(x,y)
a = fnmultiply(x,y)
Function fnadd(x,y)
fnadd = x+y
End Function
</script>
</body>
</html>
ScriptEngine
*ScriptEngine* は、使用中のスクリプト言語の詳細を表します。 また、vScriptスクリプトのメジャーバージョン、vbscriptエンジンのマイナーバージョン、vbscriptのビルドバージョンをそれぞれ提供する *ScriptEngineMajorVersion、ScriptEngineMinorバージョン、ScriptEngineBuildVersion* と組み合わせて使用されます。
構文
ScriptEngine
例
<!DOCTYPE html>
<html>
<body>
<script language = "vbscript" type = "text/vbscript">
Dim scriptdetails
scriptdetails = " Version " & ScriptEngine & " - "
'For getting Major version, use ScriptEngineMajorVersion'
scriptdetails = scriptdetails & ScriptEngineMajorVersion & "."
'For getting Minor version, use ScriptEngineMinorVersion'
scriptdetails = scriptdetails & ScriptEngineMinorVersion & "."
'For getting Build version, use ScriptEngineBuildVersion'
scriptdetails = scriptdetails & ScriptEngineBuildVersion
Document.write scriptdetails
</script>
</body>
</html>
IEでスクリプトを実行するときに拡張子lのファイルを保存すると、次の結果が画面に表示されます。
Version VBScript - 5.8.16996
IsEmpty
関数IsEmptyは、式が空かどうかを確認するために使用されます。 ブール値を返します。 IsEmpty は、変数が初期化されていないか、明示的に空に設定されている場合にTrueを返します。 それ以外の場合、式はFalseを返します。
構文
IsEmpty(expression)
例
<!DOCTYPE html>
<html>
<body>
<script language = "vbscript" type = "text/vbscript">
Dim var, MyCheck
MyCheck = IsEmpty(var)
Document.write "Line 1 : " & MyCheck & "<br/>"
var = Null ' Assign Null.
MyCheck = IsEmpty(var)
Document.write "Line 2 : " & MyCheck & "<br/>"
var = Empty ' Assign Empty.
MyCheck = IsEmpty(var)
Document.write "Line 3 : " & MyCheck & "<br/>"
</script>
</body>
</html>
IEでスクリプトを実行するときにl拡張子を付けてファイルを保存すると、次の結果が画面に表示されます。
Line 1 : True
Line 2 : False
Line 3 : True
無効です
関数IsNullは、式に有効なデータがあるかどうかを確認するために使用されます。 ブール値を返します。 IsNull は、変数がNullの場合Trueを返します。それ以外の場合、式はFalseを返します。
構文
IsNull(expression)
例
<!DOCTYPE html>
<html>
<body>
<script language = "vbscript" type = "text/vbscript">
Dim var, res
res = IsNull(var)
document.write "Line 1 : " & res & "<br/>"
var = Null
res = IsNull(var)
document.write "Line 2 : " & res & "<br/>"
var = Empty
res = IsNull(var)
document.write "Line 3 : " & res & "<br/>"
</script>
</body>
</html>
IEでスクリプトを実行するときにl拡張子を付けてファイルを保存すると、次の結果が画面に表示されます。
Line 1 : False
Line 2 : True
Line 3 : False
IsObject
IsObject関数は、式に有効なオブジェクトがあるかどうかを確認するために使用されます。 ブール値を返します。 IsObject は、式にオブジェクトサブタイプが含まれる場合はTrueを返し、そうでない場合は式はFalseを返します。
構文
IsObject(expression)
例
<!DOCTYPE html>
<html>
<body>
<script language = "vbscript" type = "text/vbscript">
Dim fso,b
b = 10
set fso = createobject("Scripting.Filesystemobject")
x = isobject(fso)
Document.write "Line 1 : " & x & "<br/>"
y = isobject(b)
Document.write "Line 2 : " & y & "<br/>"
</script>
</body>
</html>
IEでスクリプトを実行するときにl拡張子を付けてファイルを保存すると、次の結果が画面に表示されます。
Line 1 : True
Line 2 : False
IsNumeric
IsNumeric関数は、式に数値サブタイプがあるかどうかを確認するために使用されます。 ブール値を返します。 IsObject は、式に数値サブタイプが含まれている場合はTrueを返し、そうでない場合はFalseを返します。
構文
IsNumeric(expression)
例
<!DOCTYPE html>
<html>
<body>
<script language = "vbscript" type = "text/vbscript">
Dim var, chk
var = 20
chk = IsNumeric(var)
Document.write "Line 1 : " & chk & "<br/>"
var = "3.1415935745"
chk = IsNumeric(var)
Document.write "Line 2 : " & chk & "<br/>"
var = "20 Chapter 23.123 VBScript"
chk = IsNumeric(var)
Document.write "Line 3 : " & chk & "<br/>"
</script>
</body>
</html>
IEでスクリプトを実行するときに拡張子lのファイルを保存すると、次の結果が画面に表示されます。
Line 1 : True
Line 2 : True
Line 3 : False
TypeName
TypeName関数は、変数のバリアントサブタイプ情報を返すために使用されます。
構文
TypeName(varname)
Typename関数は、次の値のいずれかを返すことができます。
- バイト-バイト値
- 整数-整数値
- 長-長整数値
- 単一-単精度浮動小数点値
- Double-倍精度の浮動小数点値
- 通貨-通貨価値
- 10進数-10進数値
- 日付-日付または時刻の値
- 文字列-文字列値
- ブール-ブール値
- 空-初期化されていない値
- Null-有効なデータなし
- オブジェクト-オブジェクトのタイプ名
- なし-オブジェクトインスタンスをまだ参照していないオブジェクト変数 *エラー
例
<!DOCTYPE html>
<html>
<body>
<script language = "vbscript" type = "text/vbscript">
Dim ArrVar(2), vartype
NullVar = Null ' Assign Null value.
vartype = TypeName(3.1450)
Document.write "Line 1 : " & vartype & "<br/>"
vartype = TypeName(432)
Document.write "Line 2 : " & vartype & "<br/>"
vartype = TypeName("Microsoft")
Document.write "Line 3 : " & vartype & "<br/>"
vartype = TypeName(NullVar)
Document.write "Line 4 : " & vartype & "< br/>"
vartype = TypeName(ArrVar)
Document.write "Line 5 : " & vartype & "<br/>"
</script>
</body>
</html>
IEでスクリプトを実行するときにl拡張子を付けてファイルを保存すると、次の結果が画面に表示されます。
Line 1 : Double
Line 2 : Integer
Line 3 : String
Line 4 : Null
Line 5 : Variant()
Eval
Eval関数は式を実行し、結果を文字列または数値として返します。
構文
Eval(expression)
引数Expressionは、文字列式または数値にすることができます。 Eval関数に、数値式または関数名を含まず、単純なテキスト文字列のみを含む文字列を渡すと、実行時エラーが発生します。 たとえば、Eval( "VBScript")はエラーになります。
例
<!DOCTYPE html>
<html>
<body>
<script language = "vbscript" type = "text/vbscript">
Document.write Eval("10 + 10") & "<br/>"
Document.write Eval("101 = 200") & "<br/>"
Document.write Eval("5* 3") & "<br/>"
</script>
</body>
</html>
IEでスクリプトを実行するときにl拡張子を付けてファイルを保存すると、次の結果が画面に表示されます。
20
false
15
実行する
Executeステートメントは、実行用の1つ以上のステートメントを含む文字列式である引数を受け入れます。
構文
Execute(expression)
VBScriptでは、a = bは2つの方法で解釈できます。 xの値がyに割り当てられている割り当てステートメントとして扱うことができます。 また、aとbの値が同じかどうかをテストする式として解釈することもできます。 一致する場合、結果はTrueです。そうでない場合、結果はFalseです。 Executeステートメントは常に最初の解釈を使用し、Evalステートメントは常に2番目の解釈を使用します。
例
<!DOCTYPE html>
<html>
<body>
<script language = "vbscript" type = "text/vbscript">
Dim x
x = "Global"
y = "VBScript"
Execute("x = y")
msgbox x
msgbox y
</script>
</body>
</html>
IEでスクリプトを実行するときにl拡張子を付けてファイルを保存すると、次の結果が画面に表示されます。
VBScript
VBScript
With..End With
Withステートメントを使用すると、オブジェクト名を何度も明示的に言及することなく、指定したオブジェクトに対して一連の操作を実行できます。
構文
With (objectname)
statement 1
statement 2
statement 3
...
...
statement n
End With
例
次のスクリプトを実行すると、Winwordが開き、指定されたテキストが入力されます。
<!DOCTYPE html>
<html>
<body>
<script language = "vbscript" type = "text/vbscript">
Msg = "Vbscript" & vbCrLf & "Programming"
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
' Objects methods are accessed without requaliyfying the objects again.'
With objWord
.Documents.Add
.Selection.TypeText Msg
.Selection.WholeStory
End With
</script>
</body>
</html>
ランダム化
Randomizeステートメントは、開発者が乱数を生成するのに役立つ乱数ジェネレーターを初期化します。
構文
Randomize [number]
例
次のスクリプトを実行すると、Winwordが開き、指定されたテキストが入力されます。
<!DOCTYPE html>
<html>
<body>
<script language = "vbscript" type = "text/vbscript">
Dim MyValue
Randomize
MyValue = Int((100 * Rnd) + 1) ' Generate random value between 1 and 100.
MsgBox MyValue
</script>
</body>
</html>
上記のスクリプトをHTMLとして保存し、IEでスクリプトを実行すると、次の出力が表示されます。
42