概要
退っ引きならない事情などでVBAを利用せざるを得ない場合に、
堅くプログラミングするためにInterfaceを使う方法です。
やり方
まずはインターフェースを作成します(クラスモジュールとして作成します)
VBAでおなじみのハンガリアン記法でも問題ありませんが、通常クラスと区別するためにC#の命名規則に従ってインターフェース名を I 始まりとしています。
ISample.cls
Class ISample
Public Sub MustImplement()
'処理は書けません
End Sub
End Class
作成したインターフェースを実装側のクラスでImplementsします。
clsSample.cls
Implements ISample
Class clsSample
'インターフェースのクラス名 + _ がプレフィックスとしてつきます
Public Sub ISample_MustImplement()
'do stuff
End Sub
End Class
呼び出すときは当然ながら?インターフェース名付きの名前で呼びます。
basSample.bas
Dim objSample As clsSample
Set objSample = New clsSample
'ダサいですね
Call objSample.ISample_MustImplement()
まとめ
- クラスモジュールとしてインターフェースを作成する
- 継承する側のクラスモジュールにImplements構文を利用する
- インターフェースのクラス名をFunction/Sub/Propertyの名前にプレフィックスで付与する