20
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

VBAのクラスモジュール上でInterfaceを利用する

Last updated at Posted at 2014-07-06

概要

退っ引きならない事情などで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()

まとめ

  1. クラスモジュールとしてインターフェースを作成する
  2. 継承する側のクラスモジュールにImplements構文を利用する
  3. インターフェースのクラス名をFunction/Sub/Propertyの名前にプレフィックスで付与する
20
20
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?