以前に紹介した給料明細についての近い内容です。
まあ、ほとんど同じです。
少しループを付けてアレンジしました。
目次
成績表を、データがなくなるまで印刷
こんにちは。伊川(@naonaoke)です。
今回は、ご視聴者様からの質問の内容について解説します。
質問は下記の通りです。
成績一覧表から個人票を印刷することはExcelでは難しいです。
ということで、この印刷のところについて解説します。
クエリとか、ACCESSとか、ありますが、一番カンタンな方法です。
その他の部分に関しては、作成できなくはないですが、有料で承ります。
無料での作成は、私にとっても、お客様にとってもいいことはありません。
また、経験上、この類は、電話等で、話をしないと無理ですし、どうしても、お客様のファイルを確認する必要があるからです。
このブログはこんな人にお勧め
- ExcelVBAを勉強している人
- ACCESSで、レポートのひな型を作成するのが面倒な人
- 同じ帳票を一気にExcelで印刷したい人
このブログを、読み終わるころには・・・・
ACCESSでレポートを作成するより、はるかにカンタンだと、理解していただけると思います。
簡易的な報告なら、ACCESSのレポートを利用しますが、今回の成績表なら、Excelでひな型を利用するのが、いいでしょう。
データを一気に印刷
今回は、個別のデータを、人数分、A4の用紙に印字するというものです。
確かに、ACCESSのレポート機能でもできます。
しかし、今回は、Excelやります。
なんと言っても、メンテナンスがカンタンです。
ループを究極の参照方法で実現します。
データを一気に印刷 作業手順 その1 データベース確認
このようなデータベースがあるとします。質問の内容から、データは整形されていると思われます。
ACCESSで実行したいとありますので、いい加減なものではないと思います。
このデータを個人の成績表にします。
データを一気に印刷 作業手順 その2 究極の参照を使う
上の記事で紹介しました。
究極の参照方法は、イコールで参照することです。
今回は、データベースで作成されたデータを利用するので、整形されているはずです。
ならば、究極の参照で行きます。
赤枠のように、必要なデータを、すべて、イコールで参照します。
ただ、これだけです。
VLOOKUP関数も、Index関数とMatch関数も必要ありません。
データを一気に印刷 作業手順 その3 VBAのコード
単純に、Do Until ~Loopで、データがなくなるまで、印字を実行します
つまり、Sheet2のRange(“A2”)が空白になるまで、印字します。
データを一気に印刷 作業手順 その4 MsgBoxを自動で閉じる
私のパソコンは、プリンタに接続していないので、Msgboxを自動で閉じる方法です。
上の図のように、Windows Sprict Host Object Model にチェックを入れます。
このように記載しておくと、Msgboxが、自動で2秒で閉じます。
この方法は、以前、パソコンのログイン名を自動で取得する方法で紹介しました。
データを一気に印刷 作業手順 その5 余談
私のパソコンは、プリンタに接続していませんので、印字の検証が難しかったですね。
装飾するなら、印字中のダイアログを表示させないとか、あると思いますが、難しいのでやめました
これは、私が、実務で利用していますので、便利に利用できると思います。
ここがポイント
給料明細コードに、Do Until~Loopを加えただけです。
VBAでは、ループはよく利用しますので、For~Nextも、しっかり、理解しましょう。
そして、今回のように、どの場面では、どのループを利用するのかということも、理解しましょう。
まとめ
内容は、ほとんどが、かぶっていますが、なかなか、口頭だけでは伝わりませんので、記事にしました。
知っているコードを組合わせれば、何か、良い事が、起きるかもしれません。
今回も最後まで読んでいただきありがとうございました。
今回のサンプルファイルは、No270です。
わからない事を延々と考えるのは、無駄です。
- なんで作動かないの?
- もうやだ!VBAなんか嫌い!
- ネットで調べても情報がない!
必ず作動するコードが、ここにあります。