投稿者 threecourse  (社会人) 投稿日時 2011/3/1 08:10:30
VBのプログラムの中で、Excelでの入出力をしたいと思っています。
Excelは基本的に入出力のみで、グラフを作ったりExcel特有の動作をさせなくても良いですが、
Excelで少し計算し、そのデータを用いてVBプログラムを実行して結果を見る、ということを行いたいです。
家でも会社(そこそこセキュリティが厳しい)でも使いたいです。

以下の方法を検討したのですが、調べ方が足りないのかいまいち決定打がなく、
欠点を解決する方法・さらなる良い方法があれば教えていただきたく、質問しました。

1.VBAでExcelからcsv出力し、VBのexeを実行させcsv読込・結果をcsv出力、それを再度VBAで読み込む。
(参考:Windows Scripting Hostによるexeファイルの実行)
http://officetanaka.net/excel/vba/tips/tips27.htm
-Formアプリケーションに対して使いにくい?

2.VSTO
-使用するExcelのバージョンが限られる(会社のExcelは2003なのですが、2003対応のVSTOプログラムの作成環境が構築できない?)
-通常どおりExcelを使うときと比べて使いにくい?(Excelの値を変えても、VBでコンパイルしたら元に戻ったり?)

3.Microsoft.Office.Interop.ExcelでExcelを開いて操作する
-Excelを開いているとき閉じているとき、対象ブックを開いているときも閉じているときも、適切に動作できるか?
-Excelのプロセスが残るらしい?
(参考)
http://techbank.jp/Community/blogs/nora/archive/2008/09/23/2365.aspx

4.VBでDLLを作成してVBAから使用する
-レジストリ登録が必要、使用可能になるまでに結構な準備が必要
-DLLのクラスの引数としてList(Of String)のようなものは渡せるか?
(参考)
http://www.sev.or.jp/ijupiter/world/dc_interrop/dotnet_com_interrop.html