2011-01-09 7 views
3

Visual Studio内でExcelワークシートをデザインモードで編集できるようにするには、Visual StudioでEXCEL.EXEのインスタンスを実行する必要があります。残念ながら、常に独自のものを実行するのではなく、すでに実行しているものが見つかると、それを使用します。そのインスタンスが正常に動作していたり​​、マクロを実行していた場合、マクロがクラッシュすることがあります。何らかの理由で私が(それは私がしばしばやる)それを殺す必要があるなら、それは明らかにVSでも働くことをやめます。VSTO:Excelの新しいインスタンスを実行するようにVisual Studioを強制する方法

解決策は、すべてのEXCEL.EXEインスタンスを閉じ、VSを実行し、VSTOプロジェクトを開いてから、VSが実行中のインスタンスを見つけずに独自のインスタンスを見つけて、以前のインスタンスを再度開くことができます。これは常に可能なわけではないので、毎回VSを新しいインスタンスを開く方法を見つけたいと思います。

+0

BTWは別です新しいExcelプロセスを開始し、デバッガをそのプロセスに接続するためのソリューション(それほど優れているわけではありません) – PandaWood

+0

いいえ、私はVSのデザイナーについて、設計時に話しています。私はコードを実行していないし、デバッグもしていない。 VSはデザイナーのためにExcel.exeプロセスを必要とし、新しいプロセスを作成するのではなく、現在実行中のプロセスを盗みます。それが私が解決しようとしている問題です。 – Laurent

答えて

-1

私はVBの男ですから、私のコードは不足しているかもしれません(ただhereからコピーされています)。

まず、あなたは新しいExcelインスタンスを保持する変数を宣言したい:

Excel.Application oXL; 

その後、あなたは新しいインスタンスに変数を設定し、それが見えるようにする必要があります。

oXL = new Excel.Application(); 
oXL.Visible = true; 

のみコード内のそのインスタンスを参照してください。

oXL.Workbooks.Open ...

+1

いいえいいえ、*私はコードでこのインスタンスを作成しません。* Visual Studio *はあります。 VSのVSTOプロジェクトでスプレッドシートエディタを開くときは、Excel.exeインスタンスを使用する必要があります。これは、プロジェクト内のユーザーコードとは関係ありません。これはすべて設計モードであり、コンパイルや実行はまだ行われていません。 – Laurent

+0

私の謝罪。私はこれを理解しようとしましたが、困惑しています。がんばろう。 –

関連する問題