VBAのコードを.NETに移植

 今日はシステム障害で1日対応に追われていました。

 今の仕事で、VBAで作っているソフトウェア部品を.NETに移植するというのをやっています。VBAの.BASファイルや.CLSファイルをVBのプロジェクトにインポートして、さらにVisual Studio.NETでインポートすると、結構すんなりとVB.NETのプロジェクトが生成されて、細かい手直しをするとなんとなく動いているようです。(私は直接はコードをいじってません)
 VBAのUnit TestにはVBAUnitというツールを使っていました。これは、ExcelのVBAエンジンを使用して作られたテスティングフレームワークで、テストクラスやテストメソッドの列挙に、VBAのアプリケーションオブジェクトを使っていました。この部分は.NETのリフレクション機能で置き換えられました。既存のテストコードがそのまま.NETで動きました。
 今後の単体テストは、.NET用の単体テストツールであるNUnitで行う予定ですが、VBA時代からの回帰テストは移行版VBAUnitで行うつもりです。とにかく、今までVBAのモジュール呼び出しだった部分が.NETのCOM呼び出しに置き換えられました。将来的にはWeb Serviceや.NET Remotingに置き換え可能だと思います。
 新しい技術への移行ということで、メンバーのモチベーション向上にもつながっていると思いました。