【Ecxel VBA】成績表を、データがなくなるまで印刷

記事
IT・テクノロジー
以前に紹介した給料明細についての近い内容です。
まあ、ほとんど同じです。
少しループを付けてアレンジしました。


YouTubeでも解説しています。是非、ご覧ください。




成績表を、データがなくなるで印刷


こんにちは。伊川です。
今回は、ご視聴者様からの質問の内容について解説します。
質問は下記の通りです。
ということで、この印刷のところについて解説します。
クエリとか、ACCESSとか、ありますが、一番カンタンな方法です。
その他の部分に関しては、作成できなくはないですが、有料で承ります。
無料での作成は、私にとっても、お客様にとってもいいことはありません。
また、経験上、この類は、電話等で、話をしないと無理ですし、どうしても、お客様のファイルを確認する必要があるからです。

このブログはこんな人にお勧め

ExcelVBAを勉強している人
ACCESSで、レポートのひな型を作成するのが面倒な人
同じ帳票を一気にExcelで印刷したい人


このブログを、読み終わるころには・・・・

ACCESSでレポートを作成するより、はるかにカンタンだと、理解していただけると思います。
簡易的な報告なら、ACCESSのレポートを利用しますが、今回の成績表なら、Excelでひな型を利用するのが、いいでしょう。

データを一気に印刷

今回は、個別のデータを、人数分、A4の用紙に印字するというものです。
確かに、ACCESSのレポート機能でもできます。
しかし、今回は、Excelやります。
なんと言っても、メンテナンスがカンタンです。
ループを究極の参照方法で実現します。

データを一気に印刷 作業手順 その1 データベース確認

1.jpg



このようなデータベースがあるとします。
質問の内容から、データは整形されていると思われます。
ACCESSで実行したいとありますので、いい加減なものではないと思います。
このデータを個人の成績表にします。

2.jpg

データを一気に印刷 作業手順 その2 究極の参照を使う


上の記事で紹介しました。
究極の参照方法は、イコールで参照することです。
今回は、データベースで作成されたデータを利用するので、整形されているはずです。
ならば、究極の参照で行きます。

3.jpg

赤枠のように、必要なデータを、すべて、イコールで参照します。
ただ、これだけです。
VLOOKUP関数も、Index関数とMatch関数も必要ありません

データを一気に印刷 作業手順 その3 VBAのコード。

5.jpg
単純に、Do Until ~Loopで、データがなくなるまで、印字を実行します
つまり、Sheet2のRange(“A2”)が空白になるまで、印字します。

6.jpg


データを一気に印刷 作業手順 その4 MsgBoxを自動で閉じる

11.jpg

私のパソコンは、プリンタに接続していないので、Msgboxを自動で閉じる方法です。
上の図のように、Windows Sprict Host Object Model にチェックを入れます。
12.jpg
このように記載しておくと、Msgboxが、自動で2秒で閉じます。
この方法は、以前、パソコンのログイン名を自動で取得する方法で紹介しました。

データを一気に印刷 作業手順 その5 余談

私のパソコンは、プリンタに接続していませんので、印字の検証が難しかったですね。
装飾するなら、印字中のダイアログを表示させないとか、あると思いますが、難しいのでやめました
これは、私が、実務で利用していますので、便利に利用できると思います。

ここがポイント

給料明細コードに、Do Until~Loopを加えただけです。
VBAでは、ループはよく利用しますので、For~Nextも、しっかり、理解しましょう。
そして、今回のように、どの場面では、どのループを利用するのかということも、理解しましょう。

まとめ

内容は、ほとんどが、かぶっていますが、なかなか、口頭だけでは伝わりませんので、記事にしました。
知っているコードを組合わせれば、何か、良い事が、起きるかもしれません
今回も最後まで読んでいただきありがとうございました。

サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す