独自クラスを定義するには

WSHで独自クラスを作ることができます。
引数の多い関数や複数のある状態を保持したい場合などにクラスを使うと便利です。
WSHでTypeやEnumが使用できないため、インタフェースとして独自クラスを利用する場合もあります。


クラスの定義

Class MyClass
  Private value

  ' 戻り値が不要な関数
  Public Sub SetValue(str)
    value = str
  End Sub

  ' 戻り値が必要な関数
  Public Function getValue()
    getValue = value
  End Function
End Class

クラスの定義はClass クラス名End Classまでになります。
クラス内の変数はPrivateで定義できます。

関数はSubまたはFunctionで定義します。
戻り値が不要の場合はSubを、戻り値が必要な場合はFunctionを使用します。

外から呼出し可能な場合はPublicを、クラスの内部のみの場合はPrivateを指定します。


クラスの呼出し方

Dim objClass
' クラスオブジェクトの生成
Set objClass = New MyClass
' クラスの関数を呼出し
objClass.SetValue("XXXXX")

Class クラス名End Classを同じWSH内に記述するか、
クラスの定義を別ファイルにしてincludeすると、クラスが利用できます。
<--#include file="xxx.WSH"-->というようにクラスの別ファイルを指定します。

クラスはNewを使って、クラスオブジェクトを作成し、関数を呼び出します。
Publicで定義した関数のみ呼出しができます。


クラスのコンストラクタ・デストラクタ

Class MyClass
  ' コンストラクタ(初期化)
  Private Sub Class_Initialize()
    ' 変数のクリアなど
  End Sub

  ' デストラクタ(終了時)
  Private Sub Class_Terminate()
    ' 変数のクリアなど
  End Sub
End Class

WSHのクラスでもコンストラクタとデストラクタが指定できます。

コンストラクタはクラス生成時の初期化などに用い、Class_Initialize()で記述します。
デストラクタはクラスの終了時に用い、Class_Terminate()で記述します。

コンストラクタとデストラクタは変数のクリアやクラス内で生成したオブジェクトのクリアなどに使用されることが多いです。
いずれも必要な場合に記述すると自動で呼び出されます。




WSH講座


Copyright (C) WSH@Workshop All rights reserved.