[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『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 をアップロードしました。
https://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.