【EA】 VBの標準モジュール生成ルールの作成 | さすらいびとの徒然漂流記

さすらいびとの徒然漂流記

ふらふら漂流するさすらいびとのように,色々な話題についてお気楽極楽,徒然なるままに…

EnterpriseArchitect(EA)ではVBAの標準モジュールになぜかちゃんと対応していない.

というのも,VBEで「ファイルのエクスポート」をしてそのコードをEAで読み込むと,通常のクラスではなく,<<module>>と認識するのに,逆に<<module>>をつけたクラスをEAで生成したコードをExcelで取り込むと「クラスモジュール」として認識されてしまう


ということで,とりあえず簡単にExcelとEAの生成コードをHackして,ヘッダ項目の違いということらしいので,EAに変換ルールを追加することに.


1.ステレオタイプの追加

EAのベースファイル(EABase.EAPなど)を開く.


[設定]-[UML]-[ステレオタイプ]で「ステレオタイプ」ダイアログを開く.


ステレオタイプ設定(module)

ここで,「ステレオタイプ」にmodule「対象クラス」にクラス,他は適当に設定し,保存してダイアログを閉じる.


2.コード生成テンプレートの定義を追加.

[設定]-[コード生成のテンプレート]でテンプレートエディタを開く.


言語の選択(VB)


ここで,「言語」はVisual Basic「テンプレート」はClassを選択する.

この状態で,「ステレオタイプ指定のテンプレートの追加」ボタンを押して,「テンプレートの上書き」ダイアログを開く.

ステレオタイプのルール追加(module)


ここで,「クラス」にmodule「特性」は空を選択して,ダイアログを閉じる.


ルール追加(Class)


すると,Classに適用されていた変換ルールがコピーされるので,以下のようにテンプレートを変更する.


%PI="\n\n"%
%ClassDeclaration%
%ClassNotes%
%ClassBody%


同様に,「テンプレート」のClass Declarationにもmodule stereotypeのルールを追加する.


ルール追加(ClassDeclaration)

Attribute VB_Name = "%className%"
Option Explicit\n



簡単でしょ?


でも,こんな簡単なもの何でデフォルトでつけてくれないんだろう?