文字列操作
数値操作
日付・時間操作
配列操作
ファイル・フォルダ操作
システム情報、その他
VBScriptで、ファイルの作成日時、更新日時を取得する方法です。
'作成日時を取得する
Dim fso
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
WScript.Echo fso.GetFile("ファイルパス").DateCreated
'実行例
Dim fso
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
WScript.Echo fso.GetFile("C:\test\test.txt").DateCreated
'結果:2022/09/17 23:36:04
'更新日時を取得する
Dim fso
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
WScript.Echo fso.GetFile("ファイルパス").DateLastModified
'実行例
Dim fso
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
WScript.Echo fso.GetFile("C:\test\test.txt").DateLastModified
'結果:2022/09/25 21:26:02
VBScriptで、余りを取得するには「mod」を使用します。
'余りを取得する
数 mod 割る数
'実行例
WScript.Echo 7 mod 1 '結果:0(7÷1の余り)
WScript.Echo 7 mod 2 '結果:1(7÷2の余り)
WScript.Echo 7 mod 3 '結果:1(7÷3の余り)
WScript.Echo 7 mod 4 '結果:3(7÷4の余り)
WScript.Echo 7 mod 5 '結果:2(7÷5の余り)
WScript.Echo 7 mod 6 '結果:1(7÷6の余り)
VBScriptで、絶対値を取得するには「abs」を使用します。
'絶対値を取得する
abs(数値)
'実行例
WScript.Echo abs(123) '結果:123
WScript.Echo abs(-123) '結果:123
WScript.Echo abs(123.45) '結果:123.45
WScript.Echo abs(-123.45) '結果:123.45
VBScriptで、四捨五入をするには「round」を使用します。
'四捨五入する
round( 四捨五入する数値 , 小数点何桁にするか)
'実行例
WScript.Echo round(12345.6789 , 0) '結果:123456
WScript.Echo round(12345.6789 , 1) '結果:12345.7
WScript.Echo round(12345.6789 , 2) '結果:12345.68
WScript.Echo round(12345.6789 , 3) '結果:12345.679
VBScriptで、切り上げをするには例のように、四捨五入したい桁に0.5や0.05を足して、四捨五入することでできるようになります。
'切り上げをする
round(切り上げする数値 + 調整値 , 何桁で切り上げするか - 1 )
'※調整値:0.5 , 0.05 , 0.005(切り上げする桁による)
'実行例
'小数点第1位切り上げ
WScript.Echo round(12345.1234 + 0.5 , 0) '結果:123456
'小数点第2位切り上げ
WScript.Echo round(12345.1234 + 0.05 , 1) '結果:12345.2
'小数点第3位切り上げ
WScript.Echo round(12345.1234 + 0.005 , 2) '結果:12345.13
'小数点第4位切り上げ
WScript.Echo round(12345.1234 + 0.0005 , 3) '結果:12345.124
VBScriptで、切り捨てをするには次のようにします。
'切り捨てする
Fix(切り捨てする数値 / 10 ^ 何桁切り捨てするか) * 10 ^ 何桁切り捨てするか
'実行例
'小数点第1位切り捨て
WScript.Echo Fix(12345.6789 / 10 ^ 0) * 10 ^ 0 '結果:12345
'小数点第2位切り捨て
WScript.Echo Fix(12345.6789 / 10 ^ -1) * 10 ^ -1 '結果:12345.6
'小数点第3位切り捨て
WScript.Echo Fix(12345.6789 / 10 ^ -2) * 10 ^ -2 '結果:12345.67
'小数点第4位切り捨て
WScript.Echo Fix(12345.6789 / 10 ^ -3) * 10 ^ -3 '結果:12345.678
VBScriptで、数値から文字に変換するには「cstr」を使用します。
'数値から文字に変換する
cstr(数値)
'実行例
WScript.Echo cstr(123) ' 123
WScript.Echo cstr(12345) ' 12345
VBScriptで、文字から数値に変換するには「clng」を使用します。
'文字を数値に変換する
clng("文字列")
'実行例
WScript.Echo clng("123") ' 123
WScript.Echo clng("0456") ' 456
WScript.Echo clng("") ' 変換できないためエラー発生
WScript.Echo clng("aa") ' 変換できないためエラー発生
数値に変換するにはcintもありますが、こちらは数値の範囲制限が狭く(-32,768 ~ 32,767)あまり実用的ではありません。そのためclng側を使っておいた方が無難です。
※数値でないものを変換しようとするとエラーになるため、それを防ぐには事前の値チェックをする方法があります。数値であるかのチェックはこちらを参考にして下さい。
VBScriptで、ある文字が数値であるか(数値に変換できるか)のチェックができる関数です。
引数 target:チェックする文字、数値
結果 数値である:True、数値でない:False
Function IsNumeric(target)
On Error Resume Next
'空である時はFalseで返す
if target = "" then
IsNumeric = false
exit function
end if
'数値に変換
dim temp
temp = cint(target)
'エラーがあるかで分岐
If Err.Number <> 0 Then
'数値でない時
IsNumeric = false
else
'数値の時
IsNumeric = true
end if
On Error Goto 0
End Function
実行するとこうなります
'実行例
msgbox IsNumeric(123) '結果:True
msgbox IsNumeric("012345") '結果:True
msgbox IsNumeric("abc") '結果:False
msgbox IsNumeric("") '結果:False
VBScriptで、文字列の中にある、対象の文字の数を数える方法です。
例えばJapaneseにある「a」の数が、2つあると取得することができます。
'構文
UBound(Split("この文字の中から探す", "この文字を探す"))
'実行例
msgbox UBound(Split("japanese", "a")) '結果:2
msgbox UBound(Split("japanese", "k")) '結果:0
msgbox UBound(Split("commitment", "m")) '結果:3
msgbox UBound(Split("dismiss", "s")) '結果:3
VBScriptで、前0埋めをする方法です。
'前0埋め5桁
right(合わせる桁の文だけ"0"をつける & Cstr(数値) , 何桁に合わせるか)
'前0埋め5桁
right("00000" & Cstr(数値) , 5)
'前0埋め8桁
right("00000000" & Cstr(数値) , 8)
'前0埋め10桁
right("0000000000" & Cstr(数値) , 10)
'実行例 msgboxは確認用
msgbox right("00000" & Cstr(12),5) ' 結果:"00012"
msgbox right("00000" & Cstr(1234),5) ' 結果:"01234"
msgbox right("00000000" & Cstr(1234),8) ' 結果:"00001234"
msgbox right("0000000000" & Cstr(1234),10) ' 結果:"0000001234"
VBScriptで、後ろ0埋めをする方法です。
'後ろ0埋め5桁
left(Cstr(数値) & 合わせる桁の文だけ"0"をつける , 何桁に合わせるか)
'後ろ0埋め5桁
left(Cstr(数値) & "00000", 5)
'後ろ0埋め8桁
left(Cstr(数値) & "00000000", 8)
'後ろ0埋め10桁
left(Cstr(数値) & "0000000000", 10)
'実行例 msgboxは確認用
msgbox left(Cstr(12) & "00000",5) ' 結果:"12000"
msgbox left(Cstr(1234) & "00000",5) ' 結果:"12340"
msgbox left(Cstr(1234) & "00000000",8) ' 結果:"12340000"
msgbox left(Cstr(1234) & "0000000000",10) ' 結果:"1234000000"