VBScript 【応用編】
目次
関数
2つ引数を乗算する関数を呼び出す処理について解説します。
プログラムソース
Option Explicit Dim X,Y,Z X = 2 Y = 3 Z = MyFunc(X,Y) MsgBox Z Function MyFunc(ByVal A, ByVal B) MyFunc = A * B End Function
解説
変数 = 関数名(引数…)
関数を呼び出します。
Function 関数名(引数…)
関数名 = 戻り値
End Function
関数名 = 戻り値
End Function
関数を定義します。
ファイル操作
ファイルの存在有無による処理分岐について解説します。
プログラムソース
Option Explicit
Dim Fs
Set Fs = CreateObject("Scripting.FileSystemObject")
If Fs.FileExists("テキスト.txt") Then
Fs.DeleteFile("テキスト.txt")
Else
MsgBox "ファイルが存在しません。"
End If
Set Fs = Nothing
解説
Scripting.FileSystemObject
ファイル操作に使用するオブジェクト
Set オブジェクト変数 = CreateObject(プログラム識別子)
オブジェクト(部品)のインスタンス(実体)を生成します。
オブジェクト.FileExists(ファイル名)
ファイルが存在するか調べます。
オブジェクト.DeleteFile(ファイル名)
ファイルを削除します。
ファイル入出力
テキストファイルを読み込み、その内容をテキストファイルに出力する処理について解説します。
プログラムソース
Option Explicit
Dim Fs
Dim Rf,Wf
Set Fs = CreateObject("Scripting.FileSystemObject")
Set Rf = Fs.OpenTextFile("入力.txt",1)
Set Wf = Fs.OpenTextFile("出力.txt",2)
Do Until Rf.AtEndOfStream
Wf.WriteLine Rf.ReadLine
Loop
Rf.Close
Set Rf = Nothing
Wf.Close
Set Wf= Nothing
Set Fs = Nothing
解説
Scripting.FileSystemObject
ファイル操作に使用するオブジェクト
オブジェクト.OpenTextFile(ファイル名,入出力モード)
入出力モード
1.読み取り専用モード
2.上書きモード
1.読み取り専用モード
2.上書きモード
ファイルを開きます。
オブジェクト.AtEndOfStream
ファイルの末尾か確認します。
オブジェクト.ReadLine
ファイルから1行を取得します。
オブジェクト.WriteLine 文字列
指定した文字列を書き込みます。
オブジェクト.Close
ファイルを閉じます。
外部プログラム実行
外部プログラムの実行処理について解説します。
プログラムソース
Option Explicit
Dim Ws
Set Ws = CreateObject("Wscript.Shell")
Ws.Run "notepad.exe"
Set Ws = Nothing
解説
Wscript.Shell
Windows操作に使用するオブジェクト
オブジェクト.Run
プログラムを起動します。
コマンドライン引数
スクリプトファイルに引数を渡して実行する処理について解説します。
プログラムソース
メイン.vbs
Option Explicit
Dim Ws
Set Ws = CreateObject("Wscript.Shell")
Ws.Run "サブ.vbs aaa bbb"
Set Ws = Nothing
サブ.vbs
Option Explicit MsgBox "引数1:" & Wscript.Arguments(0) MsgBox "引数2:" & Wscript.Arguments(1)
解説
オブジェクト.Run [スクリプトファイル名] [引数…]
スクリプトファイルを呼び出します。
Wscript.Arguments(0)
引数を参照します。
エラー処理
エラー処理について解説します。
プログラムソース
Option Explicit On Error Resume Next Dim X X = 1 / 0 If Err.Number = 0 Then MsgBox "正常" Else MsgBox "失敗" Err.Clear End If
解説
On Error Resume Next
エラー発生時に、処理を続行します。
Err.Number
エラー番号を参照します。