[[20101025192440]] 『Label138でエラーになってしまいます』(KUN) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『Label138でエラーになってしまいます』(KUN)
 いつも助けて頂いて、感謝しています。
 今回ラベル印刷を行いたくて、またお世話になりました。
 ラベル印刷で検索し、色々勉強させて頂き、Label138をダウンロードさせて頂きました。
 2x6を使用いたしましたが、
 エラーが出て、一定のデータで停まってしまいます。
 このエラーの対処方法があれば教えてください。

 エラーの内容は「オーバーフロー」で

 Sub USLabelPrt(tname, cx, ry, dx, dy, Lm, Rm, Tm, Bm)
 ' ラベル形式の印刷処理

    For z = 1 To ActvRowCnt          '  データ件数分だけ処理する
          ' Application.DisplayStatusBar = True
          ' Application.StatusBar = "処理中 " & ActvRowCnt & " 件目"
       USTextBoxSet z, PBx, PBy      '  Template にある数だけTextBoxを作成
       PBx = PBx + dx
       If z Mod cx = 0 Then
          PBx = 0
          rw = rw + 1
          PBy = PBy + dy・・・・・・ココでと停まります
       End If
       If z Mod ry * cx = 0 Then
          'ActiveSheet.Cells(58, 1).Select
          'nxttop = Selection.Top
          For n = 1 To 32766
             If ActiveSheet.Cells(n, 1).Top > PBtopMax Then
                nx = n
                n = 32766
             End If
          Next n
          If nx = 0 Then

 そして、pbyには32656という数字がはいています。
 data件数は468件です。
 出来れば2000件ぐらい作成したいと思っているのですが。
 どうすれば良いのか教えてください。
 お願い致します。


 PBy はInteger 型なので扱える数値の範囲は32657 が最大です。
 変数宣言で Integer を Long に変えればとりあえずエラーは回避できると思いま
 すが、プログラムがそこまでの範囲をカバーしているかどうかは、まったく確認
 していません。

 そもそも、そこまでの範囲までカバーしていない可能性もありますので、そこは
 識者の回答をお待ち下さい。
 (Mook)

 > そもそも、そこまでの範囲までカバーしていない可能性もありますので、

 申し訳ない、件数的な耐久テストを忘れていました。

 現在調査中です。

(kazu)


 私は、ラベル印刷の場合、印刷処理は、他のアプリ(WordかAccess)に
 任せてしまう仕様にしているのですが、これ、コード自体はマクロの記録などを使えば
 簡単なんですが、問題も多いんです。Wordは、大きく仕様が変わっていたり、
 Accは、ないPCがあったりで・・・・。

 Excelだけでラベル印刷をされているようでしたので興味深く思い、
 ちょっと試してみました。

 >Public PBx As Integer, PBy As Integer
 >・・・・
 >Public colCnt As Long, rowCnt As Long, ActvRowCnt As Long, PBtopMax As Integer

 の   PBy と PBtopMax をInetger から Longに変更し、

 2X6 というシートの No と入力されているテキストボックスの幅を広げると
 (幅を広げないと、1000以上の数字が全て表示されない)
 2000件のデータでも作動はしました。
 
 が、作成者のkazuさんのいうとおり、「件数的な耐久」という点では
 処理時間はかかっていたみたいです。

 これ、位置合わせのデバッグ大変だったでしょうねえ!!

 1ページ分のレイアウトだけ作成し、

  ┌───────────────┐     ┌───────┐
 │データが終わるまで繰り返し ││─────│ データクリア │
  └───────────────┘     └───────┘
                        │
                        │
                        ┌───────┐
                                      │データセット │
                        └───────┘
                        │
                        │
                        ┌───────┐
                                      │データ印刷  │
                        └───────┘

            ↑ PAD風

 だと処理は速くなると思いますが、どうなんでしょうか?
 気になるのは、2000件をリミットとすると、最高 2000/12=167ページ分の印刷ジョブ
 とプレビューで全体の確認が出来ない点ですが・・・。

 ichinose


 遅くなりました、

 [KUN]さんご迷惑をおかけしています。

 [mook]さんもありがとうございます。

 [ichinose]さんもありがとうございます。

 オーバーフローの対策版(暫定版) Label139.xls をアップロードしました。

http://www.excel.studio-kazu.jp/DL/#Label

 とりあえず、PBy と PBtopMax を Long に変更して、500件までのテストはしました。

 処理に時間がかかり過ぎですね、500件 で 45分 かかります。

 ichinose > 2000件のデータでも作動はしました。

 ショック、私の方はいまだに2000件のテストができていません。

 ほかにもいろいろ問題がありますので、 [ichinose]さん、の言われる方式にできないか、

 も含めて近日中に見直しします。

(kazu)


 KAZU様 ありがとうございます。
 時間はかかりましたが、無事2000件印刷できました。
 大満足です。
 本当にありがとうございました。(KUN) 

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.