EnterpriseArchitect(EA)ではVBAの標準モジュールになぜかちゃんと対応していない.
というのも,VBEで「ファイルのエクスポート」をしてそのコードをEAで読み込むと,通常のクラスではなく,<<module>>と認識するのに,逆に<<module>>をつけたクラスをEAで生成したコードをExcelで取り込むと「クラスモジュール」として認識されてしまう.
ということで,とりあえず簡単にExcelとEAの生成コードをHackして,ヘッダ項目の違いということらしいので,EAに変換ルールを追加することに.
1.ステレオタイプの追加
EAのベースファイル(EABase.EAPなど)を開く.
[設定]-[UML]-[ステレオタイプ]で「ステレオタイプ」ダイアログを開く.
ここで,「ステレオタイプ」にmodule,「対象クラス」にクラス,他は適当に設定し,保存してダイアログを閉じる.
2.コード生成テンプレートの定義を追加.
[設定]-[コード生成のテンプレート]でテンプレートエディタを開く.
ここで,「言語」はVisual Basic,「テンプレート」はClassを選択する.
この状態で,「ステレオタイプ指定のテンプレートの追加」ボタンを押して,「テンプレートの上書き」ダイアログを開く.
ここで,「クラス」にmodule,「特性」は空を選択して,ダイアログを閉じる.
すると,Classに適用されていた変換ルールがコピーされるので,以下のようにテンプレートを変更する.
%PI="\n\n"%
%ClassDeclaration%
%ClassNotes%
%ClassBody%
同様に,「テンプレート」のClass Declarationにもmodule stereotypeのルールを追加する.
Attribute VB_Name = "%className%"
Option Explicit\n
簡単でしょ?
でも,こんな簡単なもの何でデフォルトでつけてくれないんだろう?