質問: ### 前提・実現したいこと 以下の処理の実装を検討しています。 アプリケーション自作クラスのオブジェクトにデータをセットして、 そのオブジェクトをExcelマクロに渡します。 Excelマクロは受け取ったオブジェクトが保有するデータをもとに、 帳票やグラフの作成をします。 ### 教えていただきたいこと そもそも私が検討していることは実現可能でしょうか? 参考サイト等ありましたら教えて欲しいです。 ※アプリケーション側から文字列を渡してExcelマクロを実行することは実現できています。 また、アプリケーションからExcelマクロを実行したとき、 Excelマクロをデバッグすることはできるのでしょうか? (たとえば、Excelマクロにブレークポイントを設定しそこでプログラムをとめたいのですが。。。) ### 補足情報(言語/FW/ツール等のバージョンなど) Visual Studio 2015 .NET Framework4
回答: 文字列を渡して VBA として実行させることが実現できているのであれば、 オブジェクトが保有するデータなども 文字列でうまいこと VBA コードに落とし込むことで 実現できる気がしますが、気の遠くなるような作業のように思います。 C# アプリからはデータをセルに入力するだけにして、 Excel VBA のほうではそのセルを参照しながら 処理をおこなうマクロをあらかじめ組んでおくようにしたほうが いいのではないでしょうか。 というか、自分なら Excel VBA にこだわらず、 データの処理を最後まで C# でおこない、 最終結果をどうしても Excel で見たいのであれば それを Excel シートに書き込むようにすると思います。 もう調査済みかもしれませんが、 C# から Excel シートを操作する方法として 下記のようなサイトもありますので参考にしてください。 Excelファイルを C# と VB.NET で読み込む "正しい" 方法 Nine Works (ClosedXML でページ内検索すると記事がいくつかあります)