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 *****


お金があるかないかで人生の楽しさは全く変わってきます。

お金があっても幸せになれるとは限りませんが、お金がない人生は不幸です。

お金がなかった私が、転職して年収1000万を超えるまでにお世話になったブログを紹介します。

エンジニア転職のリアル

今の時代は、お金を稼げるかどうかは能力の有無よりも触れた情報の質によるものが大きいです。
ぜひ皆さんも良質な情報に触れて、お金持ちになって人生を充実させてください。