VBA のコードを Java に移植しようと思った。理想としては
- 内容を解析し、設計書を起こす。
- 設計書を元に Java 版を設計しなおし、実装。
なのだが、手抜きで変換かけられないかと考えてみる。自前でコンバータを書く以外に使えるツールがないかと考えてみた。で、今回試したのは、VBA→VB6→VB.NET→C# という変換パス。うわー、超遠回り!
手順
まずは、VBA のモジュールをエクスポートし、適当に作った VB6 のプロジェクトに取り込む。これを VB.NET のコードに変換する前に、エラーになる箇所をある程度チェックすることができる。
- Code Advisor for Visual Basic 6
- http://www.microsoft.com/japan/msdn/vbasic/downloads/codeadvisor/default.asp
このツールをインストールすると、VB6 の IDE 内に "Code Advisor for Visual Basic 6" ツールバーが追加され、ボタンを押すだけでプロジェクト内のソースをチェックしてくれる。
出力されたレポートにしたがって修正を行ったら、VS.NET から VB6 のプロジェクトファイル (*.vbp) を開く。すると変換ウィザードが起動し、VB.NET への変換を行ってくれる。待つことしばし……。
変換されたソースを見ると、変換に失敗した箇所にコメントが追加されている。まぁ、とりあえずほっといて、次は C# への変換。使うツールは SharpDevelop だ。
VS.NET で変換が終わると、出力先にプロジェクトファイル (*.vbproj) ができている。これを SharpDevelop の [ファイル]→[プロジェクトインポート] で取り込む。ついで、適当な .vb ファイルを開いてから [ツール]→[ソースをVB.NETからC#に変換] を選択すると、Generated.CS というファイル名で変換結果が表示される。やったー!!