Lotus Scriptのクラスは、VBScriptと異なっているところが多いです。
Lotus Script 言語
Class クラス名 As 元クラス ’別のクラスから引き継ぐことができます
’最初に実行されます
Sub New (変数名 As 型).元クラス (変数名 As 型) ’値を受け取ることができます
End Sub
’最後に実行されます
Sub Delete ()
End Sub
Public Sub 戻り値がない関数名 (変数名 As 型)
End Sub
‘使うときは「Call クラスオブジェクト.関数名(値)」です
Public Function 戻り値がある関数名 (変数名 As 型) As 型
Me.戻り値がある関数名 = 戻り値 ’値を返します
End Function
‘使うときは「値 = クラスオブジェクト.関数名(値)」です
‘または「Set 値 = クラスオブジェクト.関数名(値)」です
Public Property Set プロパティ名 As 型 ‘ Lotus Script では Let は Set に統合されています
変数名 = Me.プロパティ名 ’値を受け取ります
(または) Set 変数名 = Me.プロパティ名 ’値を受け取ります
End Property
‘使うときは「クラスオブジェクト.プロパティ名 = 値」です
‘または「Set クラスオブジェクト.プロパティ名 = 値」です
Public Property Get プロパティ名 As 型
Me.プロパティ名 = 戻り値 ’値を返します
End Property
‘使うときは「値 = クラスオブジェクト.プロパティ名」です
‘または「Set 値 = クラスオブジェクト.プロパティ名」です
End Class
何も指定しないと Private、ByRef になります。
現在のクラスのなかで現在のクラスで定義された関数・プロパティ・変数を使うには、名前の先頭に Me. をつければOKです
VbScript 言語
Class クラス名 ’独立したクラスとして作成します
’最初に実行されます
Sub Class_Initialize () ’値を受け取れません
End Sub
’最後に実行されます
Sub Class_Terminate ()
End Sub
Sub 戻り値がない関数名 (変数名)
End Sub
‘使うときは「Call クラスオブジェクト.関数名(値)」です
Function 戻り値がある関数名 (変数名)
戻り値がある関数名 = 戻り値 ’値を返します
End Function
‘使うときは「値 = クラスオブジェクト.関数名(値)」です
‘または「Set 値 = クラスオブジェクト.関数名(値)」です
Public Property Set プロパティ名 ’Set はオブジェクトを受け取ります
Set 変数名 = プロパティ名 ’値を受け取ります
End Property
‘使うときは「Set クラスオブジェクト.プロパティ名 = 値」です
Public Property Let プロパティ名 ’Let はオブジェクト以外を受け取ります
変数名 = プロパティ名 ’値を受け取ります
End Property
‘使うときは「クラスオブジェクト.プロパティ名 = 値」です
Public Property Get プロパティ名
プロパティ名 = 戻り値 ’値を返します
End Property
‘使うときは「値 = クラスオブジェクト.プロパティ名」です
‘または「Set 値 = クラスオブジェクト.プロパティ名」です
End Class
なにも指定しないと Public、ByRef になります。
現在のクラスで定義されたプロパティをつかうときに、名前の先頭に Me. をつけるときがあります
VBA (for Excel, Word など)
VBAのクラスは Visual Basic Editor のメニューの挿入からクラスモジュールを選ぶことで作成できます。ひとつのページ(?)に複数のクラスを記述することができません
クラスをエクスポートすると、次のようなヘッダーが付いてきます
ここに記述したものすべては単一のクラス内のものとして扱われます
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
END
Attribute VB_Name = "クラス名"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = True
(ここに関数ほかを記述します)
’最初に実行されます
Private Sub Class_Initialize() ’値を受け取れません
End Sub
'使うときは「New クラス名」です
’最後に実行されます
Private Sub Class_Terminate()
End Sub
'使うときは「Set クラス変数 = Nothing」です
Public Sub 戻り値がない関数名(変数名) ' 複数の変数を指定するときはカンマ(,)で区切ります
End Sub
'使うときは「Call クラスオブジェクト.関数名(値)」です
'または「Call クラスオブジェクト.関数名(変数名:=値)」です
Public Function 戻り値がある関数名(変数名)
戻り値がある関数名 = 戻り値 ’値を返します
End Function
'使うときは「値 = クラスオブジェクト.関数名(変数名)」です
'または「Set 値 = クラスオブジェクト.関数名(変数名)」です
Public Property Get プロパティ名
プロパティ名 = 戻り値 ’値を返します
End Property
'使うときは「値 = クラスオブジェクト.プロパティ名」です
Public Property Let プロパティ名(変数名) ’Let はオブジェクト以外を受け取ります
変数名 = プロパティ名 ’値を受け取ります
End Property
'使うときは「クラスオブジェクト.プロパティ名 = 値」です
Public Property Set プロパティ名(変数名) ’Set はオブジェクトを受け取ります
Set 変数名 = プロパティ名 ’値を受け取ります
End Property
'使うときは「Set クラスオブジェクト.プロパティ名 = 値」です