VBScriptでクラスやメソッドを作ってみる

VBScriptではクラスを作ることができます。
publicとかprivateなどの可視性も定義できました。

VBScriptを侮っていたのですが、意外と色々と揃ってて、Windowsで何かしたいときは便利なのかもしれません。

データ型という概念はありません。

VBScriptのクラスは以下のような構文で作ります。

コード

Class クラス名
'中に色々書く
End Class

使う側は、

Set 変数名 = New クラス名

という使い方をします。

クラスのインスタンスを解放するには、

Set 変数名 = Nothing

と書きます。

C#にもあったデストラクタという機能は使えます。

デストラクタとは、クラスのインスタンス解放時に自動的に実行される特別なプロシージャのことです。

デストラクタは

コード

Private Sub Class_Terminate()
End Sub
という構文で定義します。

コンストラクタは

コード

Private Sub Class_Initialize()
End Sub

という構文で定義します。

サンプルを作ってみます。

コード

Option Explicit

Dim clazzA
Dim clazzB
Set clazzA = New SampleClass
Set clazzB = New SampleClass

clazzA.setValue1 = 100
clazzA.setValue2 = 300
clazzA.add
clazzB.setValue1 = 7000
clazzB.setValue2 = 8000

WScript.Echo "インスタンス1の結果↓"
clazzA.showResult

WScript.Echo "インスタンス2の結果" & clazzA.add

Class SampleClass
	Dim val1
	Dim val2
	Dim sum
	'コンストラクタ
	Private Sub Class_Initialize()
		val1 = 0
		val2 = 0
	End Sub
	Private Sub Class_Terminate()
		WScript.Echo "デストラクタ"
	End Sub

	Public Property Let setValue1(value)
		val1 = value
	End Property
	Public Property Let setValue2(value)
		val2 = value
	End Property
	'メソッドの戻り値は、メソッド名と同じ変数に入れればいい
	Public Function add()
		sum = val1 + val2
		add = sum
	End Function
	Public Function showResult()
		WScript.Echo "結果は:" & sum
	End Function
End Class
これを実行すると、以下のように表示されます。

Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.
インスタンス1の結果↓
結果は:400
インスタンス2の結果400
デストラクタ
デストラクタ
***** script completed - exit code: 0 *****

▼以下はおすすめ記事です▼
システムエンジニアは肩こりをどうやって解消しているか コロナショックはシステム会社(SIer)にどんな影響があるか 文系でもシステムエンジニアになれるの?→SIerにいる人の半分は文系です SIerにシステムエンジニアとして転職するために必要な能力 SIerを辞めた人に転職の理由を聞いてみた【後悔してる人は少ない】