VBScriptでもVBAのクラスモジュールと同等のクラスを使用することができます。
今回はクラスの使い方について説明します。
目次
VBSクラスの構成
VBSでクラスを作成するときは、以下のように定義します。
Class クラス名
(処理などを記載する)
End Class
1つのVBSファイルに、複数のクラスを作成することもできます。
クラスで使用できる機能やプログラムは、メソッド、コンストラクタ、デストラクタなど、VBAのクラスモジュールとほぼ同じですが、インターフェース機能は使用できません。
VBSにはデータ型の概念がないためです。
VBSクラスの使い方
VBSでクラスを使用するときは、Setステートメントで変数にクラスのインスタンスを作成します。
クラスのメソッドやプロパティは、インスタンスを作成した変数を経由して使います。
■クラスのインスタンス作成
Set 変数名 = New クラス名
※クラス名は、Classステートメントで定義したクラスです。
■クラスのインスタンス解放
Set 変数名 = Nothing
コンストラクタとデストラクタ
クラスでは、コンストラクタとデストラクタという機能を使うことができます。
この機能は、クラスのインスタンス作成、解放時に、自動的に実行される特別なプロシージャのことです。
それぞれ、Class_Initialize(コンストラクタ)、Class_Terminate(デストラクタ)というプロシージャ名で作成します。
Class_Initialize、Class_Terminateとも、引数は渡せません。
プログラム例
クラスを使って、計算(掛け算)をするプログラム例です。
■test1.vbs
Option Explicit
Dim clsSample1
Dim clsSample2
‘クラスのインスタンス作成
Set clsSample1 = New calClass
Set clsSample2 = New calClass
‘クラスのプロパティに値を設定
clsSample1.val1 = 2
clsSample1.val2 = 3
clsSample2.val1 = 4
clsSample2.val2 = 5
‘clsSample1.Calc、clsSample2.Calcそれぞれ計算を実行
Wscript.Echo “clsSample1:” & clsSample1.Calc
Wscript.Echo “clsSample2:” & clsSample2.Calc
Set clsSample1 = Nothing
Set clsSample2 = Nothing
‘ここからがクラスの定義
Class calClass
Dim cval1
Dim cval2
’コンストラクタ
Private Sub Class_Initialize()
cval1 = 0
cval2 = 0
End Sub
’デストラクタ
Private Sub Class_Terminate()
’処理を書く
End Sub
’プロパティ(Val1)プロシージャ
Public Property Let val1(Value)
cval1 = Value
End Property
’プロパティ(Val2)プロシージャ
Public Property Let val2(Value)
cval2 = Value
End Property
’メソッド
Public Function Calc()
Calc = cval1 * cval2
End Function
End Class
実行すると、計算の結果が2個表示されます。
※test1.vbsでは、デストラクタに実行する処理がないため処理を記載していませんが、プロシージャは分かりやすいように記載しています。記載しなくても問題はありません。
まとめ
VBScriptでのクラスの構成や使い方など、サンプルプログラムを例に説明しました。
以上、VBScriptでのクラスの使い方でした。