VBScript 【オブジェクト指向編】



目次


クラス

クラスを使用した乗算処理について解説します。

プログラムソース

クラス
Class MyCls
   Public X
   Public Y
   Public Z

   Public Sub MyMethod()
      Z = X * Y
   End Sub
End Class
メイン
<job>
<script language="VBScript" src="MyCls.vbs" />
<script language="VBScript">
   Dim A
   Set A = New MyCls
   A.X = 2
   A.Y = 3
   A.MyMethod()
   MsgBox(A.Z)
</script>
</job>

解説

Public 変数

メンバ変数を宣言します。

Public Sub メソッド名
 処理
End Sub

メソッドを宣言します。


コンストラクタ

コンストラクタを使用して、オブジェクト指向の特徴であるカプセル化について解説します。

プログラムソース

クラス
Class MyCls
   Private X
   Private Sub Class_Initialize()
      X = "コンストラクタ"
   End Sub
   Public Sub MyMethod()
      MsgBox(X)
   End Sub
End Class
メイン
<job>
<script language="VBScript" src="MyCls.vbs" />
<script language="VBScript">

   Dim A
   Set A = New MyCls
   A.MyMethod()

</script>
</job>

解説

Private 変数

メンバ変数を宣言します。

Private Sub Class Initialize()
 処理
End Sub

コンストラクタを宣言します。


プロパティ

プロパティを使用して、オブジェクト指向の特徴であるカプセル化について解説します。

プログラムソース

クラス
Class MyCls
   Private X
   Public Property Get MyProperty
      MyProperty = X
   End Property
   Public Property Let MyProperty(ByVal Y)
      X = Y
   End Property
End Class
メイン
<job>
<script language="VBScript" src="MyCls.vbs" />
<script language="VBScript">

   Dim A
   Set A = New MyCls
   A.MyProperty = "プロパティ"
   MsgBox(A.Myproperty)

</script>
</job>

解説

Publec Property Get プロパティ名
 プロパティ名 = 戻り値
End Property

内部変数を返却します。

Public Property Let プロパティ名(ByVal 引数)
 内部変数 = 引数
End Property

内部変数に値を設定します。


(擬似)継承

オブジェクト指向の特徴である継承について解説します。VBScriptには継承機能がないため、擬似的に継承を実現します。

プログラムソース

親クラス
Class ParentCls
   Public Sub ParentMethod()
      MsgBox("親クラス")
   End Sub
End Class
子クラス
Class ChildCls
   Private objCls
   Private Sub Class_Initialize()
      Set objCls = New ParentCls
   End Sub
   Public Sub ParentMethod()
      objCls.ParentMethod()
   End Sub
   Public Sub ChildMethod()
      MsgBox("子クラス")
   End Sub
   Private Sub Class_Terminate
      Set objCls = Nothing
   End Sub
End Class
メイン
<job>
<script language="VBScript" src="ParentCls.vbs" />
<script language="VBScript" src="ChildCls.vbs" />
<script language="VBScript">
   Dim A
   Set A = New ChildCls
   A.ParentMethod()
   A.ChildMethod()
</script>
</job>