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

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

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

2017-05-15 10:45:37 | ExcelVBA
今日は、先日いただきましたリクエストを取り上げます。

『昔仕事で、「申込書」「名簿」「許可書」に名簿の名前をいっぺんにうちこんで同時にプリントアウトする、
という高度なことを先輩がやってまして、(中略)あれはどういったプログラムだったのでしょう?』

多分こういう質問だろうと僕は解釈しました。
つまり、「別シートにある名簿から名前を取り込んで、その都度、印刷しては、次の名前を取り込む、
という繰り返しをプログラムで行う方法を教えてほしい」と。

解釈が違っていたら、また取り上げますので、ご連絡ください・・・


さて、以下のような発注書があるとします。







注目してほしいのは、A4(A列4行目)の数字です。この数字は、顧客Noなのです。
この数字に対応した顧客名がA6に読み込まれます。





実は、別シートに顧客名簿があるのです。ご覧いただきましょう。






さて、A6には、関数を設定してあります。
A4の値に対応した顧客名を名簿から参照する関数です。そうです、VLOOKUP関数ですね。






さて、さっそくコードを書いてみましょう。


ALT + F11 で、VisualBasicEditorを起動します。

「挿入」→「標準モジュール」をクリックします。

そこに、次のようにコードを記述してください。


Sub 連続印刷()
    Dim i As Integer
    Dim LastRow As Integer
    
    Worksheets("発注書").Select
    
    With Worksheets("名簿")
        LastRow = .Range("A65536").End(xlUp).Row
        For i = 2 To LastRow
            Range("A4").Value = .Range("A" & i).Value
            ActiveSheet.PrintPreview
        Next
    End With
End Sub



一応、画像も掲載しておきます。





名簿の顧客が増えても全員印刷できるように、名簿の最終行は、プログラムで判断しています。
また、この段階では、実際に印刷するわけではなく、確認のために印刷プレビューするコードになっていますので、
ご了承ください。


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

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






プレビュー画面が表示されますね。
この画面を閉じると、即座に次の顧客名でプレビューされます。
うまくいってますね。






実際に連続印刷する場合は、
ActiveSheet.PrintPreview
を、以下のように変更します。
ActiveSheet.PrintOut

ただし、顧客の人数が多い場合には、若干注意が必要です。
というのも、プリンタによっては、対応できずにエラーになることがあるからです。

この場合、対応するコードを追加したほうが安全です。
このコードについては、改めてご紹介しますね。



VBAって奥が深いですね。

奥が深いと言えば、エクセルって色々な機能があって、使い方によってはまるで手品(マジック)のようになるんですよね。

VBAをからめると、さらにドッキリ度がアップします。親子のやり取りを通じて、そんなエクセルの面白さが満載の本が、

子どもの“プログラミング的思考"をグングン伸ばす本

この本、おすすめですよ(^^)


だい
『ソフトウェア』 ジャンルのランキング
コメント (3)   この記事についてブログを書く
この記事をはてなブックマークに追加
« 複数のコントロールのイベン... | トップ | 入力確定前の文字が上にずれ... »
最近の画像もっと見る

3 コメント

コメント日が  古い順  |   新しい順
こんにちは (けん)
2009-10-19 14:13:40
こんにちは お天気が好いですね」。
今日の記事も読ませて頂きました。
興味ある記事です。
招待状、とか宛名に利用できますね。
次の記事を待ってます。
けんさんへ (だい)
2009-10-21 20:57:24
いつもコメントありがとうございます。
また、リクエストをお待ちしております。
エクセルは、おりこうですよね。
おせわさまです。 (けん)
2009-10-22 08:57:33
おはようございます。
家に帰ってから試してみたのですがどうも頭の固い僕には解らない所があります。

=vlookup(A4,名簿!A2:C11,2,0)&” 御中”
           ↑↑↑
C11,2,0)
この辺の解説意味をご教授ください。
よろしくおねがいします。

コメントを投稿


コメント利用規約に同意の上コメント投稿を行ってください。

数字4桁を入力し、投稿ボタンを押してください。

あわせて読む

トラックバック

この記事のトラックバック  Ping-URL