- PR -

C#で同時実行

1
投稿者投稿内容
Beginner
会議室デビュー日: 2004/02/06
投稿数: 17
投稿日時: 2004-04-01 11:04
ただいま、作成したデータをEXCELに転送し、EXCELの印刷プレビューを表示するものを作成しています。

ですが、EXCEL起動、データ転送、印刷プレビューが表示されるまでの時間が長いので
プログレスバーなどを表示したいのですが、可能でしょうか?
ご教授お願いいたします。

WinXP, Windowsアプリ, C#, VS.NET2003、, EXCEL2003です。
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2004-04-01 11:18
諸農です。

引用:

ですが、EXCEL起動、データ転送、印刷プレビューが表示されるまでの時間が長いので
プログレスバーなどを表示したいのですが、可能でしょうか?



可能か?という問いに対しては「可能です」となりますね。
実現方法は?となるなら、

1.EXCEL起動、データ転送、印刷プレビューを単位化して、
  その総数・総量をProgressBar.Minimumにセット。
2.単位あたりの処理完了時点でIncrement()を呼び出す。
3.必要に応じてプログレスバーの表示更新を行う。

等々になると思いますが。。

そういうことではないのでしたら、読み捨ててください。

_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
Beginner
会議室デビュー日: 2004/02/06
投稿数: 17
投稿日時: 2004-04-01 11:28
早速のご返信有難うございます。

引用:


1.EXCEL起動、データ転送、印刷プレビューを単位化して、
  その総数・総量をProgressBar.Minimumにセット。
2.単位あたりの処理完了時点でIncrement()を呼び出す。
3.必要に応じてプログレスバーの表示更新を行う。




1に単位化とありますが、具体的にはどのような感じでしょうか?
初心者なのでちょっと検討がつきません^^;
あと、やはりマルチスレッドを使うことになりますか?
よろしくお願いいたします。

Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-04-01 14:28
引用:

Beginnerさんの書き込み (2004-04-01 11:28) より:

1に単位化とありますが、具体的にはどのような感じでしょうか?
初心者なのでちょっと検討がつきません^^;
あと、やはりマルチスレッドを使うことになりますか?


 プログレスバーは、最低値、最大値を決め、ステップを刻むことで表示させます。単位化とは、すべての処理が始まる時点を0%(またはステップ0)、終わったときが100%(またはステップN)として、それぞれの処理が何%(または何ステップ)かを決めることです。

 マルチスレッドでなくても出来ないことはないですが…マルチスレッドだから難しい、と思っていたらいつまでも出来ないので、どこかで思い切りましょう。
Beginner
会議室デビュー日: 2004/02/06
投稿数: 17
投稿日時: 2004-04-01 14:48
ご返信有難うございます。
引用:

 プログレスバーは、最低値、最大値を決め、ステップを刻むことで表示させます。単位化とは、すべての処理が始まる時点を0%(またはステップ0)、終わったときが100%(またはステップN)として、それぞれの処理が何%(または何ステップ)かを決めることです。

 マルチスレッドでなくても出来ないことはないですが…マルチスレッドだから難しい、と思っていたらいつまでも出来ないので、どこかで思い切りましょう。



ということは、印刷プレビュー処理を実行したと同時に、プログレスバーを設置してあるフォームを表示し、プレビューが表示されたら、フォームも閉じるというような感じでしょうか?

Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-04-01 14:52
引用:

Beginnerさんの書き込み (2004-04-01 14:48) より:

ということは、印刷プレビュー処理を実行したと同時に、プログレスバーを設置してあるフォームを表示し、プレビューが表示されたら、フォームも閉じるというような感じでしょうか?


 どのように作るかによりますから。
 EXCELのマクロですべてやるのなら、プログレスバーの表示はほぼ不可能でしょう。C#側ですべてやるなら、そういう感じになります。

[ メッセージ編集済み 編集者: Jitta 編集日時 2004-04-01 14:52 ]
Beginner
会議室デビュー日: 2004/02/06
投稿数: 17
投稿日時: 2004-04-01 16:26
引用:

 どのように作るかによりますから。
 EXCELのマクロですべてやるのなら、プログレスバーの表示はほぼ不可能でしょう。C#側ですべてやるなら、そういう感じになります。




マルチスレッドについて調べて、学習したいと思います。
わからないことがありましたらまたお願いします。
いろいろ有難うございました。
1

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