レガシーASP(Active Server Pages)では、独自クラスを作ることができます。以下に、VBScriptでのクラスの使い方をまとめてみました。
クラスの定義
たとえば、nameプロパティと対応するゲッタ・セッタを持つ、Hogeという名前のクラスを作る場合は、以下のようにClassステートメントを使って定義します。
<% Class Hoge Private name Public Sub SetName(x) name = x End Sub Public Function GetName() GetName = name End Function End Class %>
※ちなみにプロパティの場合は、Letステートメント、Getステートメントを使ってプロパティのアクセサメソッドを定義できます。
Property Getステートメント、Property Letステートメントを用いたプロパティの定義
Captionプロパティに値を代入する際に何か処理を加えたい場合などは、Publicステートメントの代わりにProperty Getステートメント、Property Letステートメントを用いる。
第9回 VBScriptのオブジェクトを使いこなす (3/4):基礎解説 演習方式で身につけるチェック式WSH超入門 - @IT
クラスを使用する
レガシーASPでクラスを使用するには、Newステートメントでインスタンス化して使用します。クラスを別ファイルに記述する場合は、<--#include file="xxx.asp"-->というようにインクルードしてから使用します。
Dim objHoge Set objHoge = New Hoge objHoge.SetName("hoge")
コンストラクタとデストラクタ
クラス生成時に自動実行されるコンストラクタとクラスが破棄されるタイミングで実行されるデストラクタは、以下のように定義することができます。
' コンストラクタ Private Sub Class_Initialize ' 処理 End Sub ' デストラクタ Private Sub Class_Terminate ' 処理 End Sub
おわりに
今までASP.NETでないとクラスが使えないものだと思っていましたが、レガシーASPでもクラスが使えたのは正直おどろきでした。データベースアクセスを司るクラスや共通関数をまとめたクラスなど、役割ごとにクラスを作ってやることで、プログラムの構成がわかりやすくなると思います。ぜひ活用してみてください。