VBScript クラスの使い方

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でのクラスの使い方でした。