ラベル Excelで連続印刷 の投稿を表示しています。 すべての投稿を表示
ラベル Excelで連続印刷 の投稿を表示しています。 すべての投稿を表示

入力と印刷

Excelで連続印刷~使用例その1にデータ入力マクロ「dhenkan2」を追加してみた。

Excelで連続印刷~使用例その1では、りんご入庫データの確認書を出荷者へ通知する想定で解説しました。

どうせなら、印刷の基本となるデータそのものを入力できるようということで追加したファイルを作りました。

追加したのは、「dhenkan2」マクロをコントロールする「コントロール」シートと実際に入力するシート「入庫入力」です。



「入庫入力」シートです。必要項目を入力します。



出荷者名や品名は入力する瞬間だけ確認できればいいので、更新する項目にせず、右側のセルへVlookup関数で表示するようにしておきます。



マクロを実行する図はリンゴの絵(クリップアートより)にしました。



「コントロール」シートには、入力シートと出力される側のシートを設定しておきます。



設定ができたら入力し、データを追加してみます。



ちょっと補足しますが、「抽出」という項目には条件によりデータに番号が振られる関数が設定されています。データを追加した後、出荷者コード等で並び替えをしてから改めて一行目からコピーするか、再設定するのがいいでしょう。



実際に入力するときは、1件1件設定するのではなく、データをすべて入力し終えたら、一気に関数をコピーまたは再設定するのが合理的ですね。

印刷の元になるデータを入力できたら、あとは印刷する・・・・・・・となるわけです。



入力と印刷が合わされば、かなり仕事で役に立つのでは・・・・・・思っております。

サンプルファイルはサイドバーの使用サンプルファイルからダウンロードできます。

Excelで連続印刷~使用例その2

Excelで連続印刷~使用例その1・・・・・からのつづき

前回は連続印刷用のマクロを組み込んだExcelファイルの使用例の一つを説明をしました。

今回はOfficeで自立社で試験を受けていただき、その試験結果の通知書を作成し印刷する・・・・・という想定をいたしました。

このようなシートを作成してみました。

まずは、受験者マスタです。本来は受験者の住所や性別、電話番号なども登録しておくべきです。



試験結果のデータです。受験者ごと教科ごとの点数を入力しています。



通知文のシートです。これは試験の結果によって「A,B,C」のランク分けし、そのランクにより合否文章を表示させます。



試験結果の通知書です。上記の3っつのシートからこの通知書を作成します。



※今回解説しているExcelファイルもダウンロードできるようにしますので、各関数の説明は省きます。

「試験結果通知」シートの解説を簡単にしますと・・・・・・。

まず受験者氏名は、もちろん「受験者ID」を検索値として、「受験者マスタ」より表示します。



総合評価ですが、ここは試験すべての合計を表示します。関数はDSUM関数を使い受験者IDを条件として集計します。(DSUM関数の使い方は~DSUM関数で集計表① ② ③ を参照してください。)



ランクは総合評価の点数の平均によりA、B、Cに分けます。図の関数はIF関数を使い「平均60点より小さければC、平均75点より小さければB、それ以外はA」という数式にしています。つまり平均75点以上はAランクで有無を言わず合格ということです。



ランクにより表示する文章を「通知文」シートより表示します。



各設定ができたら、受験者IDを変更し、きちんと表示されるか確認します。



最後に「印刷コントロール」シートです。



読み込みに使う「DBシート」は「受験者マスタ」を指定します。

「DB表示列」は「受験者ID」の列を指定します。

「重複印刷」は受験者マスタに重複がないので「する」でも「しない」でもどちらでも同じ結果になります。

ただ、「する」を指定すると重複があってもなくてもデータを順に読み込むのでデータ件数が多い場合は「する」を指定した方が、処理は早いと思います。

「印刷シート」はもちろん「試験結果通知」を指定し、「印刷位置」には「受験者ID」を表示する位置を指定します。

確認したら、印刷開始ボタンをクリック!



「試験結果通知」シートに表示が切り替わり、印刷が開始されます。

シンプルに解説するため、不合格の方には少し冷たい通知になりました(笑)。

もっとあたたかい文章を考えたり、様式をもっと見栄えするよう修正する必要がありますね。

サンプルファイルはサイドバーの使用サンプルファイルからダウンロードできます。

Excelで連続印刷~使用例その1

Excelで連続印刷からのつづき

前回は連続印刷用のマクロを組み込んだExcelファイルの使い方の説明をしました。

この使用例をいくつか考えてみました。

前回は一つのデータベースシートと一つの印刷シート間での取扱でした。

ということは、データベース側が、すべての情報をもっていないと印刷シートを作成することができません。

今回は複数のシートから印刷シートを作成する例を解説します。

このようなシートを用意しました。

りんごの入庫確認書を出荷者に通知する・・・・・・という業務を想定しました。

まずは、「出荷者マスタ」です。



りんごの品種を管理する「品名マスタ」です。



そして「入庫データ」です。



ここでは出荷者名や品名といった情報はなくコードのみの必要最小限のデータになってます。

必ず出荷者コード、入庫日などで並び替えを行ってください。バラバラだとバラバラに印刷されます。

明細の抽出方法は「関数で取引明細作成① ②」を参照してください。

上記の3つのシートから、印刷するシート「入庫確認書」を作成します。



確認すると・・・・・・。

出荷者コードのセルを検索値として、「出荷者マスタ」からVLOOKUP関数を使い出荷者名を表示します。



「入庫日」「品名コード」「入庫数」などは明細№を検索値として「入庫データ」シートから表示します。



「品名」は「品名マスタ」シートから表示します。



出荷者コードを変更したりして、正しく表示されればOKです。



あとは「印刷コントロール」シートで各項目の設定をします。



確認ですが・・・・・・。

読み込みに使う「DBシート」は「入庫データ」シートを指定します。すべての出荷者が「入庫データ」にあるとわかっているならば、「出荷者マスタ」シートを指定してもいいですね。でも出荷者すべてが入庫しているとは限らないので、こういう場合は「入庫データ」を指定します。

「DB表示列」は、読み込むフィールドを指定するので、もちろん「入庫データ」シートの「出荷者コード」の列をセル番地で指定します。

「入庫データ」には、同じ出荷者が何件かあるので、重複印刷は「しない」に設定します。

あとは印刷するシート「印刷シート」に指定し、「DB表示列」で指定したフィールドを「印刷シート」のどの位置に表示させるかを「印刷位置」にセル番地で指定します。


設定し確認したら「印刷開始」をクリックします。

このようにデータベースとなるシートと印刷するシートの2シート間だけで完結するのではなく、複数のシートから印刷用のシートを作成し、元となるデータベースのキーを読み込むことで連続印刷ができるわけです。

次回は、もうチョット簡単な例を解説してみます。

サンプルファイルはサイドバーの使用サンプルファイルからダウンロードできます。

Excelで連続印刷

ExcelでWordの差し込み印刷のようにデータを読み込んで連続印刷できないか考えてみました。

Excelでは複数シートを一括で印刷する方法はあるんです。

ただ、Wordのように一つの文書に、ExcelやAccessのデータベースを読み込んで連続で印刷する機能はないです。

まさか、印刷したいデータ分のシートを作成するわけににもいかないですよね。データによっては数百シート作成しなければならなくなります。

やはりここはVBコードで対応するしかないようです。

作成したサンプルのExcelファイルはダウンロードできるようにしますので、VBコードの公開はしません。

今回は、作成したExcelファイルの使い方を解説します。

印刷するシートは以前当ブログで解説した「関数で取引明細」を使用します。

このように、必ず印刷の元になるデータベースと印刷用のシートを作成します。

データベース(必要に応じデータの並び替え等を行っておく)


印刷用シート


印刷用の「個別取引明細書」は「顧客№」で「売上データ」からVLOOKUP関数などを使い自動でデータ表示するように作成しています。


Wordのように文書を作成し、表示したいデータを個々に差し込んでいくのではなく、データベースのキーになる部分(今回は「顧客№」)から、関数などを使い、印刷用のシートを作成しておきます。

ということは、そのキーになる部分(今回は「顧客№」)を「書き換えて印刷する」という処理を行えば、連続印刷できるわけです。

印刷するための設定をする「印刷コントロール」というシートを作成しました。



①DBシート  ~ データベースに使用するシート名を指定

②DB開始位置 ~ データベースの始まる位置をセル番地で直接指定する(だいたい「a1」からだと思います。)



③DB表示列  ~ データベースのフィールドで印刷シートに表示させるキーとなる部分(今回は顧客№)をセル番地で直接指定する。



④重複印刷  ~ ③DB表示列で指定したキーとなる項目が重複している場合、重複に関係なくすべて印刷するか(する)、重複のキーがある場合は読み飛ばして次のキー項目を印刷するか(しない)を指定する。
※今回は「しない」を選択しました。ということは、一度読み込んだキーと次に読み込まれるキーが同じならば、新しいキーが読み込まれるまで読み飛ばします。(ここは使ってみるとわかります。)

⑤印刷シート ~ 印刷するシート名を指定。

⑥印刷位置  ~ ③DB表示列で指定したキー項目を印刷シートのどのセルに表示させるか、セル番地で直接指定する。



設定が終わったら、下の図形(すでにマクロ登録されている)をクリックすると印刷シートへ画面が切り替わり印刷が開始されます。



⑤印刷位置で指定したセル「a5」部分にデータベースから読み込まれたキーが順に表示され、印刷される。


最後のデータの読み込みが終わると終了のお知らせがでます。



このVBコードは、なんのことはない、指定されたデータベースのキーとなる項目を順に表示し印刷するだけのプログラムです。

そのため、印刷するシートはキー項目からすべてを表示できるように作りこまなければなりません。むしろこちらのほうが大事です。

それが完成すれば、あとは「印刷コントロール」シートへ必要項目を設定し、「印刷開始」ボタンをクリックです。

今回は、キーが重複する少し面倒な明細をサンプルに解説しましたが、キーが重複しないデータベース(住所録等)を使用し案内状や見積もり書などにも使えると思います。

印刷用のシートそのものは、複数のデータベースから作成してもかまいません。ただ、表示させる(読み込ませる)キーが存在するデータベースは一つが原則です。

次回、この連続印刷をほかの例を使用して解説してみます。

サンプルファイルはサイドバーの使用サンプルファイルからダウンロードできます。