WinForms アプリケーションに次の設定があるとします。
Dim ExcelApp As Microsoft.Office.Interop.Excel.Application
Dim ExcelWorkbook As Microsoft.Office.Interop.Excel.Workbook
Dim wksDataVals As Microsoft.Office.Interop.Excel.Worksheet
ExcelApp.Visible = False
基本的に、バックグラウンドで実行されているExcelの目に見えないインスタンスがあり、その中で開いているブックとExcelWorkbook
、アプリが操作しているシートが呼び出されwksDataVals
ます。そして、ユーザーはユーザーフォームを介してこのシート (およびその他) を操作し、それらの操作に基づいていくつかの出力を確認しています。
ここで、フォームにボタンShow Excel Sheet
があり、ユーザーがクリックすると、新しいスタンドアロンのワークブックに wksDataVals のコピーを表示し、元のデータをバックグラウンドで非表示にして、さらにデータを操作できるようにします。これを隠しておきたいので、Excelの新しいインスタンスを作成してこれを行う必要があると思います。
これを行うより良い方法はありますか:
- ワークシートの保存
- Excel の新しい (表示されている) インスタンスの作成
- そのインスタンスでワークシートを再度開く
(ワークシートを他のExcelインスタンスで開いたままにしたいので、ワークシートが読み取り専用になるという問題が発生する可能性があります)-ワークシートを新しい名前で再度保存することでこれを克服できることはわかっていますが、これはすべてやり過ぎのようです。
これを最も簡単な方法で達成する方法についてのアイデアはありますか?? - Excel に保存されたシートを開こうとするのではなく、ワークブック/シートを内部的に保存し、新しい Excel インスタンスにフィードする方法があるのではないでしょうか??
ありがとう!