投稿者 threecouse  (社会人) 投稿日時 2011/3/1 23:29:11
るきおさん、とくまさん、ご回答どうもありがとうございます。
説明が不十分な部分があったので、追記させていただきます。

やりたいことは、金融商品の価格計算です。
会社での実務は(残念ながら)ExcelVBAですが、新しい商品の計算をするために新しいworkbookを作り、VBAコードをコピペするというプログラミングになっていて、修正する時が大変ですし、一貫性も保てません。
なので、実務は本当はVB.net等に移行すべきと考えていて、そのための勉強を行っているところです。
Visual Studio 2010で開発しています。

なぜVB.netがいるか?というと、
計算モデル部分が複雑なため、VBAだと力不足なのです。
うまくクラスを分割して、継承やラムダ式を使いながら共通部分・商品固有の部分と分けて計算したいのです。

なぜExcelがいるか?というと、
インプットの下準備としてExcelでの計算が必要な場合があること、
アウトプットの検証・分析はExcelで行うためです。
今はVB.netのみでcsv入出力で行っているのですが、少し面倒です。

というところで、入出力がExcel、計算はVB.netというのが理想なのです。

・Formアプリケーションに対して使いにくい?
Formアプリケーションは、Consoleアプリケーションに対しての対比です。
今はFormアプリケーションで作成しているのですが、
ちゃんとExcelからの呼び出しができれば、Consoleアプリケーションでも問題ないですね。。

・DLLのクラスの引数としてList(Of String)のようなものは渡せるか?
プログラムに渡したいものは、csvファイルないしList(Of String)で表せるデータということです。
ただ、引数は空でcsvをVB.netプログラムから読み込ませれば目的は達成できる気がしてきました。

・レジストリ登録が必要、使用可能になるまでに結構な準備が必要
少し試してみたのですが、 regasmの後にDLLの場所をExcel.exeの直下にする等の準備が必要なようで、今のところ上手くいっていないです。(regasm⇒VBA参照設定まではできたのですが、呼び出すとオートメーションエラーです。)
セキュリティは、 regasmが会社のPCで可能かどうかということを気にしています。(セキュリティ部門に申請すればできそうですが)