- - PR -
ユーザ操作でExcelアプリケーションが終了してしまう
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-02-15 17:56
すみません、代替起動というのはどのように行うのでしょうか? Application.AltStartupPathプロパティに "c:" のような仮のパスを設定するということでしょうか? (知識不足ですみません) | ||||||||
|
投稿日時: 2007-02-15 19:29
それでうまくいきますか? (うまくいかないと思います) 私が思いついたのは、以下のとおりです。 Excel アプリケーション起動中に別の Excel Workbook を開きますと、Excel.Workbooks に Workbook が追加されます。 このタイミングで ApplicationClass.WorkbookOpen イベントが発生します。 WorkbookOpen イベントで、別インスタンス (プロセス) の Excel.ApplicationClass を起動し、 イベント引数にある Excel.Workbook を利用して起動させ COM の参照カウントをデクリメントして放置する。 このようにすれば、ユーザーは DDE を使っていたとしても、別インスタンスで起動させることができます。 まあ、最初の回答にあった BeforeClose イベントで解決した方が楽ですが。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2007-02-15 20:06
IgnoreRemoteRequests = True の場合、Workbook 自体が Open できなくなることがあります。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2007-02-15 21:19
試してみたいのはヤマヤマなんですが、 Excel.ApplicationClass が出てきてくれません・・・orz(Excel.Applicationは出てきますが) 現在参照しているのはCOMの Microsoft Excel 11.0 Object Library(バージョン1.5.0.0) です。 追記 ---------------------------------------- 入力候補に出ないだけで使用できるみたいでした^^; お騒がせして申し訳無いですm(_ _;)m [ メッセージ編集済み 編集者: BlueField 編集日時 2007-02-15 21:28 ] | ||||||||
|
投稿日時: 2007-02-16 00:51
かならず、後始末しておけばいいような気もしますけど。 最終手段としては、registry をいじれば。。。 HKCU\Software\Microsoft\Office\12.0\Excel\Options REG_DWORD Options の bit flag 0x40 を切り替え。 Office 2007 で調べたので違うかもしんない。 | ||||||||
|
投稿日時: 2007-02-16 07:22
これだと、ユーザーが何時終了していいのか、分からなくないですか? または、プログラムで Exit していると思いますが、ユーザーが操作中に終了してしまわないですか? _________________ | ||||||||
|
投稿日時: 2007-02-16 08:46
? 何やら勘違いしていないでしょうか? 当初より、特定の Workbook のみを処理が終わるまで終了させなければ良い。 というご質問だったかと思っていたのですが... その Workbook の識別はプログラムからできます。 終了させて良い時期は、処理が終了した後です。
こちらに関しては、意味すらわからないです。 操作中に終了させないようにするためにやっていることなのに、 それ自体を否定されたら (それなりに説明して頂かないと) わけがわからないです。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2007-02-16 08:49
これが怖いのでイヤなのですよね。 たとえば、プロセスごと Kill された時のことを考えると、弊害のない手段を選びたいと思います。 "かならず、後始末" できる手段があれば良いとは思います。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |