タグ: Class_Terminate

  • [言語比較]Class : クラスをつくる

    [言語比較]Class : クラスをつくる

     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 クラスオブジェクト.プロパティ名 = 値」です