パソコンカレッジ スタッフのひとりごと

パソコンスクールのスタッフが、
初心者から上級者まで役立つ情報をお伝えします。

宛名を変えて自動的に連続印刷する方法-その2-(Excel2000以降)

2009-10-21 14:01:59 | ExcelVBA
今日は前回(宛名を変えて自動的に連続印刷する方法)の続きです。


さて、前回の最後に書きましたが、連続印刷の場合、プリンタによっては、一度に大量のデータを送りつけられると
エラーとなって印刷できない危険性があります。

そんなリスクを回避するために、コードを追加します。
以下のように変更してください。


Sub 連続印刷()
    Dim i As Integer
    Dim LastRow As Integer
    Const UNIT As Integer = 5
    
    Worksheets("発注書").Select
    
    With Worksheets("名簿")
        LastRow = .Range("A65536").End(xlUp).Row
        For i = 2 To LastRow
            If i Mod UNIT = 0 Then
                MsgBox "一定数印刷されたらOK押してね"
            End If
            Range("A4").Value = .Range("A" & i).Value
            ActiveSheet.PrintPreview
        Next
    End With
End Sub


追加個所は、赤枠で囲ったところですよ。




UNITという定数に5を設定しました。
この数字の倍数のときに、メッセージボックスが表示されます。
表示されている間は、印刷データがプリンタに送られません。

ある程度印刷された段階で、このメッセージボックスのOKを押してください。
すると、また、UNITに設定された数だけ(今回なら5回分)印刷データを送り込んで、メッセージボックスが表示されます。

こうして、一度に大量のデータを送信することを回避しているのです。


それでは、実行してみましょう。

Excelに切り替えて、Excel2003までは、「ツール」→「マクロ」→「マクロ」とクリックします。
Excel2007は、Altキーを押しながらF8キーを押してください。
実行ボタンをクリックします。





今回のコードは、実際に印刷するのではなく、印刷プレビューとなります。
5回プレビューされるとメッセージボックスが表示されます。
(厳密に言うと、最初のメッセージボックスは、5回よりも少なくなります)







メッセージボックスのOKを押すと、5回プレビューして、再度メッセージボックスが表示されます。


ちなみに、UNITの5 を変更すると、その数字分だけ印刷してメッセージボックスが表示されます。
いろいろと試してみてください。


だい

コメント (4)    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 明細行の背景色を変えて印刷... | トップ | データベース関数の紹介(DSUM... »
最新の画像もっと見る

4 コメント

コメント日が  古い順  |   新しい順
そうです!! (ROSSO)
2009-10-22 03:20:24
けんさん、こんばんは。

そうです私がリクエストしたヤツは、これと指示書・受取書(公的機関にいたので証明書発行に使ってました)をエクセルシート横3列に並べてリンク貼ったものの連続印刷方法なのです。
(説明わかりづらくてごめんなさい)


とりあえず、コードを見てますと「後ろから」考えていくんですね?
大変勉強になりました。ありがとう御座いました。
返信する
こんどは (ROSSO)
2009-10-22 03:46:54
雛形を失くしてしまったのですが
万年カレンダー式のカレンダーで
00:00~00:00=00:00となる
タイムカードの作り方教えてください。
これもVBA使ってるようでかなり難しく、
前の会社のタイムシートがこれでした。
このフォームに数字を打ち込むと1ヶ月の勤務時間数が一発ででて、曜日もわかるという仕組みです。
返信する
ROSSOさんへ (だい)
2009-10-23 11:07:57
お役に立てた用で何よりです。

今回のリクエストにつきましては、近いうちに取り上げますので、楽しみにお待ちください。

今後もよろしくお願いいたしますね。
返信する
ROSSOさんへ (だい)
2009-10-23 11:07:57
お役に立てた用で何よりです。

今回のリクエストにつきましては、近いうちに取り上げますので、楽しみにお待ちください。

今後もよろしくお願いいたしますね。
返信する

コメントを投稿

ExcelVBA」カテゴリの最新記事