実行
(例)wscript test.vbs
(例)cscript test.vbs
'---------------------------------------- 暗黙の宣言を許可しない
Option Explicit
'---- 定数
WScript.Echo "定数"
Public Const MAX_COUNT = 10
WScript.Echo MAX_COUNT
'---- 変数、(dim、public、private)
WScript.Echo "変数、(dim、public、private)"
Dim a,b
a=100
b=200
WScript.Echo a+b
'---- Subプロシージャの引数はデフォルト参照渡し、明示的に値渡し、参照渡しを設定可能
'---- SUBプロシージャ、引数はデフォルト参照渡し
WScript.Echo "SUBプロシージャ、引数はデフォルト参照渡し"
Sub sSample1(i,j)
a=i
b=j
WScript.Echo a+b
End Sub
Call sSample1(10,20)
'---- SUBプロシージャ、明示的に参照渡し
WScript.Echo "SUBプロシージャ、明示的に参照渡し"
Sub sSample2(Byref i,j)
i = i*j
End Sub
Private c
c=10
Call sSample2(c,20)
WScript.Echo c
'---- SUBプロシージャ、明示的に値渡し
WScript.Echo "SUBプロシージャ、明示的に値渡し"
Sub sSample3(ByVal i,j)
i = i*j
End Sub
Private d
d=10
Call sSample3(d,20)
WScript.Echo d
'---- Functionの引数はデフォルト参照渡し、明示的に値渡し、参照渡しを設定可能
'---- Functionプロシージャ、引数はデフォルト参照渡し
WScript.Echo "Functionプロシージャ、引数はデフォルト参照渡し"
Function fSample1(i,j)
fSample1 = i+j
End Function
WScript.Echo fSample1(1,2)
'---- Classを宣言
WScript.Echo "Classを宣言"
Class SampleClass
Public Sub Sample(i,j)
WScript.Echo i * j
End Sub
Public Function Sample2(i,j)
Sample2 = i*j
End Function
End Class
Private sc
Set sc = New SampleClass
sc.Sample 100,30 '←括弧は使用できない
WScript.Echo sc.Sample2(10,20)
Set sc = Nothing
'---- Propertyプロシージャ、設定と取得
WScript.Echo "Propertyプロシージャ、設定と取得"
Class SampleClass2
Private s
Public Property Get WshShell()
Set WshShell = s
End Property
Public Property Set WshShell(Arg)
Set s = Arg
End Property
Private Sub Terminate()
Set s = Nothing
End Sub
End Class
Private pc
Set pc = New SampleClass2
Set pc.WshShell = CreateObject("WScript.Shell")
WScript.Echo pc.WshShell.SpecialFolders("Desktop")
Set pc = Nothing
'---- 配列
WScript.Echo "配列"
Dim TestArray(3)
TestArray(0) = 0
TestArray(1) = 1
TestArray(2) = 2
TestArray(3) = 3
WScript.Echo TestArray(2)
'---- 動的配列
WScript.Echo "動的配列"
Private TestArrayA()
ReDim TestArrayA(3)
TestArrayA(0) = 0
TestArrayA(1) = 1
TestArrayA(2) = 2
TestArrayA(3) = 3
WScript.Echo "----"
Private i
For i = 0 To UBound(TestArrayA)-1
WScript.Echo TestArrayA(i)
Next
WScript.Echo "----"
WScript.Echo UBound(TestArrayA)
WScript.Echo "----"
Private x
For Each x In TestArrayA
WScript.Echo x
Next
WScript.Echo "----"
ReDim Preserve TestArrayA(6)
TestArrayA(4) = 4
TestArrayA(5) = 5
For Each x In TestArrayA
WScript.Echo x
Next
WScript.Echo "----"
'---- プロシージャから抜ける(Sub、Function、Property)
WScript.Echo "プロシージャから抜ける(Sub、Function、Property)"
Private Function ExitSample(a)
ExitSample = False
If a < 100 Then
Exit Function
Else
ExitSample = True
End If
End Function
If ExitSample(50) Then
WScript.Echo "true"
Else
WScript.Echo "false"
End If
'---- If Then 〜 Else 〜 End If
WScript.Echo "If Then 〜 Else 〜 End If"
Private t
t = Time()
If t < TimeValue("12:00:00") Then
WScript.Echo "AM-" & t
Else
WScript.Echo "PM-" & CDate(t - TimeValue("12:00:00"))
End If
'---- Select case
WScript.Echo "Select case"
t = Time()
WScript.Echo "now time - "& t
Select Case Hour(t)
Case 1,2,3,4,5,6,7,8,9
WScript.Echo "sleeping"
Case Else
WScript.Echo "wakeup"
End Select
'----For〜Next
WScript.Echo "For〜Next"
Private loop1
For loop1 = 0 To 10-1
WScript.Echo loop1
Next
'----For Each〜Next
WScript.Echo "For Each〜Next"
Private TestArrayB(5)
TestArrayB(0) = 1
TestArrayB(1) = 2
TestArrayB(2) = 3
TestArrayB(3) = 4
TestArrayB(4) = 5
TestArrayB(5) = 6
Dim xx
For Each xx In TestArrayB
WScript.Echo xx
Next
'----While〜Wend
WScript.Echo "While〜Wend"
Private count
count=0
While count < 10
WScript.Echo count
count = count + 1
Wend
'----Do〜Loop While
WScript.Echo "Do〜Loop While"
Private count2
count2=0
Do
WScript.Echo count2
count2 = count2 + 1
Loop While count2 < 10
'----Exit Do
WScript.Echo "Exit Do"
Private count3
count3 = 0
Do
count3 = count3 + 1
WScript.Echo count3
If count3 > 4 Then
Exit Do
End If
Loop
'----Exit For
WScript.Echo "Exit For"
Private loop2
For loop2=0 To 10
WScript.Echo loop2
If loop2 > 4 Then
Exit For
End If
Next