カーソル風操作クラスをInterface化する

コンストラクタに渡した文字列を1文字ずつ処理するクラスを作成、カーソル風操作部分をInterface化、他のクラスにも適用するようにした。
使い方は以下のように非常にシンプルになる。コンストラクタで初期値を設定できるため、インターフェースに代入してしまっても不便がない。
通常インターフェース側にクラス毎に異なる部分を入れると使いずらくなってしまうためだ。
以下、2種類の呼び方でとりあえず実装していこうと思う。

呼び出し方法1

以下はインスタンスをICursorに設定して実行する方法。

呼び出し方法2

以下はインスタンスをCharCursorに設定して GetCursor で ICursor インターフェースを取得し、実行する方法。
こちらは、CharCursor のメソッドも使える(この例ではGetCursor しかないけどメソッド、プロパティがあれば呼べる)し、ICursor のメソッドも使える。

カーソル風操作のメソッドを定義

※以下ソースはファイルに保存してからインポートしてください。
Item プロパティが規定のプロパティになるように以下設定をする。Interface に設定すれば実装にもちゃんと効く。
Attribute Item.VB_UserMemId = 0

カーソル風操作のメソッドの実装

※以下ソースはファイルに保存してからインポートしてください。
IConstructor, ICursor の2つのインターフェースを定義。特に複数Interfaceを定義しても問題ありません。

コンストラクタ用インターフェース

※以下ソースはファイルに保存してからインポートしてください。

Instancing プロパティが規定のプロパティになるように以下を設定をする。
Attribute Item.VB_UserMemId = 0

規定のインスタンスが生成されるように以下を設定する。
Attribute VB_PredeclaredId = True

ABOUTこの記事をかいた人

はてなブックマークで驚愕の1600越えを記録した伝説が今明らかに! エクセル方眼紙 四天王の1人(ほぼ最弱)窓の杜大賞2014 大賞受賞! Excelを便利にする250以上の機能を体系化したアドインはこちらです。