配列をループする

VBScriptで、配列の中身をループして処理する例です。

'配列の宣言&値のセット
Dim arr(2)
arr(0) = "a"
arr(1) = "b"
arr(2) = "c"

'---------------------------
'配列の中身をループする例
'---------------------------
'ループ用の変数
Dim i

'配列の中身をループして表示する
For i = 0 to Ubound(arr)
     WScript.Echo arr(i)
Next

 

 

上の例でも使用していますが、配列の要素数を取得するにはUboundを使用しています。

Uboundについてはこちらで説明しています。

 

 

配列を宣言する

VBScriptで、配列の要素数を取得するには「Ubound」を使用します。

尚、配列の添え字は0から始まるので、要素数は+1となる点に注意して下さい。

※ 要素数は値がセットされている・いないは関係ありません。

'配列の要素数を取得する
Ubound(配列)

'例
Dim arr(5)
arr(0) = "a"
arr(1) = "b"
arr(2) = "c"
'要素数を表示
WScript.Echo Ubound(arr)  '結果:5(添え字は0からのため要素数は6)

文字を日付に変換する

VBScriptで、文字を日付に変換する例です。

'文字を日付に変換する
CDate("日付の文字列")

'日付に変えられる文字列は次のとおり
WScript.Echo CDate("2022/4/1")          '2022/04/01
WScript.Echo CDate("2022-4-1")          '2022/04/01
WScript.Echo CDate("April 1, 2022")     '2022/04/01
WScript.Echo CDate("2022年4月1日")       '2022/04/01
WScript.Echo CDate("令和4年4月1日")      '2022/04/01

'単に数値だけではエラーとなります
WScript.Echo CDate("20220401")           'エラー

 

 

文字を日付に変換する(時刻あり)

上の例に時刻をつける例です。

'日付に時刻を付ける例です。
'日付はこの上の例の形式ならOKです
WScript.Echo CDate("2022/4/1 12:34")             '2022/04/01 12:34:00
WScript.Echo CDate("2022/4/1 12:34:56")          '2022/04/01 12:34:56
WScript.Echo CDate("2022/4/1 12時34分")           '2022/04/01 12:34:00
WScript.Echo CDate("2022/4/1 12時34分56秒")       '2022/04/01 12:34:56

ファイル名を変更する

VBScriptで、ファイル名を変更する方法です。

'ファイル名を取得する
Dim objFso
Dim objFile
Set objFso = CreateObject("Scripting.FileSystemObject")
Set objFile = objFso.GetFile("変更前のファイルパス(フルパス)")
objFile.Name = "変更後のファイル名(フルパスは不可)"

'実行例
'フォルダ「C:\test\」にあるbefore.txtをafter.txtに変更する
Dim objFso
Dim objFile
Set objFso = CreateObject("Scripting.FileSystemObject")
Set objFile = objFso.GetFile("C:\test\before.txt")
objFile.Name = "after.txt"

日付を加算する

VBScriptで、日付を加算する構文と実行例です。

'構文
DateAdd("区分の文字列" , 加算する数 , 加算する対象の日付)
'区分の文字列: "d":日付、"m":月、"yyyy":年

'日を加算する
WScript.Echo DateAdd("d" ,  1 , "2022/01/01")   '2022/01/02
WScript.Echo DateAdd("d" ,  7 , "2022/01/01")   '2022/01/08
WScript.Echo DateAdd("d" , 30 , "2022/01/01")   '2022/01/31
WScript.Echo DateAdd("d" , -1 , "2022/01/01")   '2021/12/31

'月を加算する
WScript.Echo DateAdd("m" ,  1 , "2022/01/01")   '2022/02/01
WScript.Echo DateAdd("m" , -1 , "2022/01/01")   '2021/12/01

'年を加算する
WScript.Echo DateAdd("yyyy" ,  1 , "2022/01/01")   '2023/01/01
WScript.Echo DateAdd("yyyy" , -1 , "2022/01/01")   '2021/01/01

'月末日を取得する
WScript.Echo DateAdd("d", -1, DateAdd("m", 1, "2022/01/01"))  '2022/01/31

時間を加算する

VBScriptで、時間を加算する構文と実行例です。

'構文
DateAdd("区分の文字列" , 加算する数 , 加算する対象の日付時刻)
'区分の文字列: "h":時間、"n":分、"s":秒

'時間を加算する
WScript.Echo DateAdd("h" ,  1 , "2022/01/01 09:00:00")   '2022/01/01 10:00:00
WScript.Echo DateAdd("h" , -1 , "2022/01/01 09:00:00")   '2022/01/01 08:00:00

'分を加算する
WScript.Echo DateAdd("n" ,  30 , "2022/01/01 09:00:00")   '2022/01/01 09:30:00
WScript.Echo DateAdd("n" , -30 , "2022/01/01 09:00:00")   '2022/01/01 08:30:00

'秒を加算する
WScript.Echo DateAdd("s" ,  30 , "2022/01/01 09:00:00")   '2022/01/01 09:00:30
WScript.Echo DateAdd("s" , -30 , "2022/01/01 09:00:00")   '2022/01/01 08:59:30

西暦から和暦へ変換する

VBScriptで、西暦から和暦へ変換する関数と実行例です。

'西暦から和暦に変換する関数
Function SeirekiToWareki(sDate)

	dt = CDate(sDate)

	If dt <= DateSerial(1912, 7, 29) Then
	   gg = "明治"
	   yy = Year(dt) - 1867
	ElseIf dt >= DateSerial(1912, 7, 30) And dt <= DateSerial(1926, 12, 24) Then
	   gg = "大正"
	   yy = Year(dt) - 1911
	ElseIf dt >= DateSerial(1926, 12, 25) And dt <= DateSerial(1989, 1, 7) Then
	   gg = "昭和"
	   yy = Year(dt) - 1925
	ElseIf dt >= DateSerial(1989, 1, 8) And dt <= DateSerial(2019, 3, 3) Then
	   gg = "平成"
	   yy = Year(dt) - 1988
	ElseIf dt >= DateSerial(2019, 4, 1) Then
	   gg = "令和"
	   yy = Year(dt) - 2018
	End If

	SeirekiToWareki = gg & yy & "年" & DatePart("m", sDate) & "月" & DatePart("d", sDate) & "日"

End Function


'実行例
WScript.Echo SeirekiToWareki("2022/9/26")    '令和4年9月26日

日付であるかのチェック

VBScriptで、日付であるかのチェックする構文と実行例です。

返り値は、-1 : True(日付である)、0 : False(日付でない)であることに注意して下さい。

'日付であるかをチェックする構文
'-1 : True(日付である)、0 : False(日付でない)
isdate("日付")

'実行例
WScript.Echo isdate("2022/1/1")   '-1(=True)
WScript.Echo isdate("2022/1/0")   ' 0(=False)

曜日を取得する

VBScriptで、曜日を取得する構文です。

返り値は、曜日を表す数値になっています。

'曜日を取得する
Weekday(日付)

'返り値は土曜日を表す数値となっています
'1 : 日曜日 '2 : 月曜日 '3 : 火曜日 '4 : 水曜日
'5 : 木曜日 '6 : 金曜日 '7 : 土曜日

'曜日を取得する
WScript.Echo Weekday("2022/01/01")   '7:土曜
WScript.Echo Weekday("2022/01/02")   '1:日曜
WScript.Echo Weekday("2022/01/03")   '2:月曜

コンピュータ名を取得する

VBScriptで、コンピュータ名を取得する方法です。

Dim objNetwork
Set objNetwork = CreateObject("WScript.Network")
'コンピュータ名は↓で取得できます
objNetwork.ComputerName

'表示して確認
WScript.Echo objNetwork.ComputerName