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

Excel改ページ(HPageBreaks.Add)処理速度の改善について

1
投稿者投稿内容
えびまよ
会議室デビュー日: 2006/07/03
投稿数: 2
投稿日時: 2006-07-03 21:26
はじめまして、えびまよと申します。

Excelにて帳票出力を行うプログラムを作っています。
帳票の改ページを以下のコードでひとつづつ指定しています。

wkSheet.HPageBreaks.Add((Excel.Range)wkSheet.Cells[row, 1]);

ここで処理速度に関して問題がでてきました…
20件程の改ページでも、なぜか処理時間が14秒もかかってしまいます…
※上記コードで、20回、HPageBreaks.Add()するだけなのですが…
※他の処理(セル値設定等)は1、2秒で完了します。

そもそも、HPageBreaks.Add()での改ページは、
これくらい処理時間がかかるものなのでしょうか。

もしかしたら、非効率的な改ページ指定をしているのかもしれません…
どなたか、良い方法をご存知の方がおられましたら、
お手数ですが、ご教授頂けないでしょうか。
ちゃっぴ
ぬし
会議室デビュー日: 2004/12/10
投稿数: 873
投稿日時: 2006-07-03 22:00
そのくらいかかって普通だと思います。
また、回避方法もたしか無かったと思います。

そもそも、HPageBreaks, VPageBreaks 自体の動作すら非常に怪しいですしね・・・。
# 改ページプレビュー にしてやって、ActiveCell を最終のところに
# もっていかないと count が正常にならないとか。

引用:
Excelにて帳票出力を行うプログラムを作っています。



ということで、Excelにて帳票出力 は非常にお勧めではありません。
# 他にも文字切れとか問題発生しますしね。
# Vista & Office 12 以降なら解決されるのかなぁ・・・ WPF のおかげで・・・

[ メッセージ編集済み 編集者: ちゃっぴ 編集日時 2006-07-03 22:05 ]
えびまよ
会議室デビュー日: 2006/07/03
投稿数: 2
投稿日時: 2006-07-04 11:59
ちゃっぴさん、書き込みありがとうございます。

引用----------------------------------------------------------------------
そのくらいかかって普通だと思います。
また、回避方法もたしか無かったと思います。

そもそも、HPageBreaks, VPageBreaks 自体の動作すら非常に怪しいですしね・・・。
# 改ページプレビュー にしてやって、ActiveCell を最終のところに
# もっていかないと count が正常にならないとか。
--------------------------------------------------------------------------

そうですか…Excel側の動きはどうしようもないですものね…

では、考え方を変えて、「HPageBreaks」を使用せずに改ページ制御を行う事はできないのでしょうか。
予め、帳票Excelテンプレートに、改ページ制御を仕込んでおくなど…

どなたか、そのような回避方法をご存知の方がおられましたら、ご教授頂けないでしょうか。
ぶさいくろう
ぬし
会議室デビュー日: 2005/11/22
投稿数: 1232
お住まい・勤務地: 川崎市(は俺も含めてロクな人間が住んでないよw)
投稿日時: 2006-07-04 12:32
引用:

えびまよさんの書き込み (2006-07-04 11:59) より:
では、考え方を変えて、「HPageBreaks」を使用せずに改ページ制御を行う事はできないのでしょうか。


引用:

ちゃっぴ氏の投稿
# 改ページプレビュー にしてやって、ActiveCell を最終のところに
# もっていかないと count が正常にならないとか。


でもこの方法だと自分の好きな位置にできるわけじゃないんで、手動で制御したい場合の回避方法はないと思われ。(ちゃっぴ氏がすでに書いてるけど)

[ メッセージ編集済み 編集者: ぶさいくろう 編集日時 2006-07-04 12:33 ]
パンダ
会議室デビュー日: 2006/09/11
投稿数: 1
投稿日時: 2006-09-11 12:06
・Excel2002,2003 では、、「改ページ」が表示されているとスクロールが遅い(その他動作も遅い)現象が発生します。(MSも確認している様です。)
・Excel2000では、この現象は発生しません。

文書番号 : 418322
文書タイトル : [XL2002]改ページが表示されているとスクロールが遅い
http://support.microsoft.com/kb/418322/ja

回避方法. 改ページ線を非表示にする
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Excel 2003 を起動し、現象の発生するファイルを開きます。
2. [ツール] メニューをクリックし、[オプション] をクリックします。
3. [表示] タブの [改ページ] のチェックをオフに設定し、[OK] をクリックします。
4. [ファイル] メニューをクリックし、[上書き保存] をクリックします。
5. 再度OPEN後、操作を行い、現象が回避されるかご確認ください。


また、VBAで以下の指定でも回避できます。
 ActiveSheet.DisplayAutomaticPageBreaks = False

試してみてください。 ご参考まで。

[ メッセージ編集済み 編集者: パンダ 編集日時 2006-09-11 12:48 ]
1

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