@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

Excelとの同期を取りたい

1
投稿者投稿内容
butthead
大ベテラン
会議室デビュー日: 2004/01/14
投稿数: 162
投稿日時: 2005-05-10 11:33
すいません。自分ではわからないため、質問させていただきます。
あるアプリケーションからExcelを起動します。

起動したExcelの動きが遅いため、アプリケーションが
期待したExcelのウインドウハンドルがとれず、
Excelが完全に起動するまで待ち同期を取りたいと思います。

もし上記のような動作を行いたい場合、どのようなコードを書けば
もしくは関数を使えばいいのでしょうか。あるいは参考になるページでも結構です。


環境としてはVC++6.0、Excelは2000,97などです。

よろしくお願いします。 m(__)m
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-05-10 11:48
こんにちは、じゃんぬ です。

引用:

起動したExcelの動きが遅いため、アプリケーションが
期待したExcelのウインドウハンドルがとれず、
Excelが完全に起動するまで待ち同期を取りたいと思います。
もし上記のような動作を行いたい場合、どのようなコードを書けば
もしくは関数を使えばいいのでしょうか。あるいは参考になるページでも結構です。
環境としてはVC++6.0、Excelは2000,97などです。


その前に教えてください。
Excel はどうやって起動しているんですか?
CreateProcess() ですか?



_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
butthead
大ベテラン
会議室デビュー日: 2004/01/14
投稿数: 162
投稿日時: 2005-05-10 13:31
お世話になります。

起動方法は
WinExec
を使用しております。
自分で調べた感じですと

WaitForInputIdle
を使用することで同期が取れるのでしょうか。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2005-05-10 22:49
 Excelの2000と97を同時サポートというのは、見直した方がいいと思う。
 アプリケーションハンドルを捕まえて、何かさせるんですよね?
butthead
大ベテラン
会議室デビュー日: 2004/01/14
投稿数: 162
投稿日時: 2005-05-11 10:59
>Excelの2000と97を同時サポートというのは、見直した方がいいと思う。
> アプリケーションハンドルを捕まえて、何かさせるんですよね?

自分も以前までは、97から2003までのウインドウクラスは違っていると思ってましたが、(海外のサイトでそう書いてあるページがあったため。)全部スパイで調べてみたところ、一緒でした。

なのでウインドウハンドルに問題はないと思います。で、上記の件ですが、
同期を取るのは上記に書いてある関数名でOKでした。

1

スキルアップ/キャリアアップ(JOB@IT)