• ベストアンサー

エクセル等で連続流し込み印刷は?

複数の項目を集計し、表になっている数10人分のデータを、ひとつの決まったフォームで、データを反映させて個人別に印刷したいのです。 例えるなら年賀状作成ソフトの連続流し込み印刷のようなイメージというか。 このようなことがエクセル等でも可能なのでしょうか。 なんとなく理解できた方、お知恵をお貸しください。よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.3

[Sheet1]            [Sheet2]    A   B   C      A  B  C  D 1  氏名  年齢  身長   1 表示No.   ↓この下あたりから印刷 2 東京太郎  30  _178   2  1    東京太郎 様 3 埼玉花子  20  _150   3         あなたの年齢は 30歳 4 千葉次郎  25  _165   4         身長は 178cm です 上のようなSheet1の各行をSheet2のカタチで連続印刷してみます。 ●Sheet1のA2:C4に範囲名『DATA』を付けます(分かりやすくするためです) ●Sheet2は、A2を表示用のカウンタとし、C2、D3、D4に式を書きます。(例です)  Sheet2のC2を左上にした印刷範囲を設定します。  Sheet2の式は、    C2 =INDEX(DATA,A2,1) & " 様"    D3 ="あなたの年齢は "&INDEX(DATA,A2,2) &"歳"    D4 ="身長は " &INDEX(DATA,A2,3)&"cm です"  このようにセル参照をIndex関数を使って書いていきます。当然、計算や判定もできます。  計算や判定ができるので差込印刷機能よりも便利な場合が多々あります。(ケースバイケースですが)  この時点で、A2を1→2→3→1 と変えてみてください。この操作をマクロで実行して印刷します。 ●ツール→マクロ→Visual Basic Editor でVBE画面に移り、    表示→プロジェクトエクスプローラでプロジェクトエクスプローラを表示します。    プロジェクトエクスプローラのSheet2をダブルクリック。    出てきたコードウインドウに下記マクロをコピーして貼り付けます。    下は3行印刷しています。For~NextでA2セルの値を増やしています。 Sub Insatu()   Dim pgNo As Integer '// ページカウンタ   For pgNo = 1 To 3     Range("A2") = pgNo     '// 今はプレビュー。PrintPreview→PrintOut で印刷     ActiveSheet.PrintPreview   Next End Sub ●シートに帰り、ツール→マクロ→マクロ で上のマクロを実行します。

StraySheepDog
質問者

お礼

参考にさせていただきます。どうもありがとうございました。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

VBAを使うと、ワードで言う「差し込み印刷」が簡単にかつ思い通りに可能です。 (1)「Sheet1のセルデータ」を「Sheet2に作った個人別表のセル」にデータを持ってくるステップ (ステップとはプログラムの1-数行を言っています) (2)Sheet2の個人別表の印刷ステップ (3)Sheet1の各行を上から下に最下行まで処理して行く ステップ (4)最下行を捉えるステップ (5)Sheet2の個人別表の一部セルのクリアのステップ (人により記入なし項目があるとき) をどうするか知ればそう長いプログラムにはなりません。 データを一人分セット-印刷-クリア-次の人のデータを セット-印刷・・・の繰り返しをします。 しかしマクロ・VBAの始めての方には、人によっては大変でしょう。

StraySheepDog
質問者

お礼

参考にさせていただきます。どうもありがとうございました。

  • fmajin
  • ベストアンサー率61% (75/122)
回答No.1

原則として、Excelには「差し込み印刷」と呼ばれるものに相当する機能がありませんので、いろいろな工夫が必要になってきます。 具体的にどのような内容を印刷したいのかわかりませんが、例えば、宛先の「氏名」だけを変更して印刷するというような場合、要は氏名を変更したら印刷、という作業を繰り返すことになります。数十人分程度でしたら、なんとか手作業でも可能な量でしょうか。 しかし、これら同じ作業を何度も繰り返すのでしたら、マクロを組むと便利です。ただし、マクロを組むためにはそれなりに学習も必要となってきます。 もし、Wordもお持ちなら、Wordには「差し込み印刷」機能がありますので、そちらで実現するという手もあります。単純な表でしたら、Wordで作成可能なはずですね。 一方、例えば、各個人の給与明細を印刷するというように、氏名だけでなく、各個人に合わせたデータを表示して印刷するというような場合でしたら、関数も組み合わせて、氏名を変更したら、表内にその人のデータを表示させるような仕組みにしておく必要があります。そうすれば、同じように印刷を繰り返すだけですね。

StraySheepDog
質問者

お礼

参考にさせていただきます。どうもありがとうございました。

関連するQ&A