最近、.Net 1.1の古いプロジェクトが.Net4.0に移行しています。プロジェクトは、Excelファイル開くには、次の方法を使用している:.Net4.0のProcess.Start()を使用してExcelファイルを開くことができない
Process process = new Process();
try
{
process.StartInfo.FileName = marco_file;
process.Start();
}
catch(Exception)
{
}
finally
{
process.Close();
}
をそしてmarco_fileは、Excelのパスは「C:\プロジェクト\のTest.xlsを」のように、マクロを含むファイルであることで、マクロはすぐに実行されます Excelファイルが開くとき。
.Net1.1では、コードとマクロの両方が正常に実行されます。 .Net4では、コードは例外なく実行されます。しかし、マクロは機能しませんでした。
なぜExcelファイル内のマクロが実行されなかったのですか?
私の環境はWin7 64bitです。 Office 2010 64ビット。私は、次のコードに変更して、デバッグモード
process.StartInfo.FileName = marco_file;
if (process.Start())
{
Debug.WriteLine("-->start ");
}
else
{
Debug.WriteLine("-->failed ");
}
を実行すると、結果はそれがプロセスの起動に失敗を意味し、他のブロックに入り、ということである7.5
おかげ
をIIS。
なぜですか?
コードは例外なく実行されていますか?あなたはそれらを食べているようです。 –
catch {}を削除してもう一度やり直すと、例外がスローされ、何がスローされたかがわかります。 – Mathieu
キャッチ(例外)の代わりにcatch(Exception ex){//印刷例外}と書いてみてください。 – Bahamut