- - PR -
VB.NET から EXCELオブジェクトの操作
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-03-15 21:22
意味が良くわかりませんが、COM の参照のみ解放していること自体は何ら問題ないですよ。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2006-03-15 21:26
Quit していないから、プロセスは残る、、、んじゃないかと。
# チャット状態(笑) [ メッセージ編集済み 編集者: Jitta 編集日時 2006-03-15 21:31 ] | ||||
|
投稿日時: 2006-03-15 21:28
そうですね。 結果を確認させたいから残しています。(閉じられちゃ確認できない) _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2006-03-15 21:47
これだけの説明じゃ意味不明ですよね... ということで補足します。(; ̄- ̄) [x 閉じる] ボタンから Excel を終了させようとした場合に、 問題なくプロセスを解放できる状態にまでしてあるということです。 実際に試してみればわかりますが、COM オブジェクトの参照を解放していない場合、 [x 閉じる] ボタンから Excel を終了させようとしてもプロセスは居残り続けます。 これは COM オブジェクトの参照が残ったままになっているからです。 そういう意味では、起動元のプロセスが解放されれば、Excel のプロセスも解放されることが期待できます。 しかし、それは正常終了した場合のみであり、異常終了の場合は解放されません。 起動して "何か" をして、 「はい、ユーザーさん、続きはどうぞ」 という場合には、ああいう実装をするわけです。 VSTO を使いましょうって感じですけどね。(;^-^) _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2006-03-16 00:16
じゃんぬさん、Jittaさん 本当にありがとうございます。 運用面からは、グラフを書いてプレビューしてユーザーさんが閉じれば 終了ですので、じゃんぬさんのおっしゃる方に近いですね。 別作業をしている間に気に掛けていただきありがとうございます。 じゃんぬさんのコードを参考にしてみましたが、結果は×でした。 Shape.Select() のところで落ちてしまいます。 OfficeやVB.NETのバージョンのせいなのでしょうか・・・ もう少し探ってみます。 | ||||
|
投稿日時: 2006-03-16 01:10
これは、xlImageShape.Select() の部分のことですよね? この時の xlImageShape のインスタンスが正しくないだけかもしれません。 私もちょっと調べてみます。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2006-03-16 09:52
Image1 のある Sheet が Active になっていない、 またはオブジェクトが無効化になっていませんか? どちらにしても xlImageShape.Select() の前に xlSheet1.Activate() が必要でしたね。(;^-^) _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2006-03-17 09:14
じゃんぬさん、ありがとうございます。 業務が多忙でなかなか返信できず、すみません。 いまだ解決できていません。 アプリケーションからブックをオープンし、シートに OLEObject を新規に作成してい るのですが、その作成したオブジェクトに対して Select メソッドを実行できません。 OLEObject がまずいのかと思い、Shape.Add〜 を試してみましたがダメでした。 シートに既に作成されている Shape オブジェクトに対しては、Select〜Formula を 実行することができました。 試しにアプリからオブジェクトを作成して保存したブックを開いてみたのですが、オブ ジェクトをクリックして選択することができませんでした。 オブジェクトを作成するときって何か注意が必要なんでしょうか? (初歩的な質問で申し訳ないのですが…) |