|
分類:[C#]
2020/03/18(Wed) 08:47:00 編集(投稿者) 2020/03/18(Wed) 08:16:02 編集(投稿者) 2020/03/16(Mon) 15:48:55 編集(投稿者)
知識、技術不足なため、ご助力いただきたく 何卒よろしくお願いいたします。
C#でExcelファイルに書き込みたいのですが COMだと非常に処理時間がかかったため、ClosedXMLを使用しました。
出力対象のExcelはテンプレートが決まっており マクロ(ボタンを押すと処理が走る)が実装されているものです。
ClosedXMLだと出力後にボタンがただのオブジェクトとなり ボタンが押せなくなってしまいました。
どうにかマクロを実装させる方法はありませんでしょうか。
皆様のお力をお貸しいただければ幸いです。 よろしくお願い致します。
<追記> いくつか異なる事象が発生していますので、詳細に記載します。 何分初心者なもので、説明が拙いこと、ご容赦くださいませ。
csvのデータを読込、Excelファイルにプロットする c#のアプリケーションを作成しています。
Excelファイルのテンプレートは3種類あり どちらもボタンにマクロが実装されています。 マクロの処理内容は同様で、3種類のテンプレートの違いはレイアウトの違いのみです。 (3種類といっても、テンプレートは別の方が作成しているため、どんどん最新版が送られてきているだけなのですが・・)
◇開発及びテスト環境 Visual Studio2012 Excel2010
c#アプリケーションより、テンプレートへのデータ出力を行い、 その後、Excelファイルを開くとマクロ実装済みボタンの上にボタンオブジェクトが生成。 1つ目のテンプレートは、再度実行すると、オブジェクトが増加。 2つ目のテンプレートは、再度実行すると、増加はしていないが、1つだけオブジェクトが生成。 3つ目のテンプレートは完全にボタンの押下が不可状態。
尚、別の環境(Excel2012)でアプリケーションの実行をしたところ 1つ目のテンプレートはオブジェクトの生成はされず、 2つ目のテンプレートでは実行毎にオブジェクトが生成されます。
単純にExcelのバージョンが違うことが原因であれば、テンプレートごとに挙動が異なることが不思議に感じています。 マクロはボタンを押下しないと動かないので、VBEのコード側でオブジェクトの生成をしてしまっていることも 考えにくいかと思っています。
長くなりましたが、何か解決の糸口となれば幸いでございます。 私も色々な事象が発生しているため、混乱している状態です。。 よろしくお願いいたします。
|