エクセル 規定のフォーマットに別シートのデータを繰り返し印刷

このQ&Aのポイント
  • エクセルの2000で、別シートのデータを規定のフォーマットに繰り返し印刷する方法について質問します。
  • 現在は200社のデータを各シートに分割入力しており、入力・管理・印刷が面倒です。そこで、入力データを1ページにまとめて、別シートで表示や印刷する方法を考えています。
  • 具体的な方法としては、1つのシートで200件のデータをコードで管理し、別のシートで会社コードを入力すると対応するデータを表示するという形式です。質問は、この形式で一度に複数の会社を印刷する方法についてです。マクロやVBAの活用方法について教えてください。
回答を見る
  • ベストアンサー

エクセル 規定のフォーマットに別シートのデータを繰り返し印刷

エクセルにて繰り返し印刷の方法を質問します。  環境は、OSはME・エクセルは2000です。 現在、前任者からの引継ぎを行っています。 現在は200社ぐらいのデータを各シート(同じレイアウト)に分割入力しています。これでは入力・管理・印刷等も面倒なので、200社の入力データのみを1ページに入力して、表示や印刷のみは、別シートにする事を考えています。 <考え方> 1)ページA:200件の会社情報をコードにて管理。 必要なデータをそれぞれ入力。 2)ページB:表示や印刷する帳票レイアウト形式のページ。会社コードを入力すると、ページAから検索して、会社名やその他の情報を表示する。 表示は帳票形式のページに、データシートのセルを参照する形で可能です。vlookup関数を使用して、該当コードのそれぞれのデータを表示する・・・という形です。 問題は、この形式で印刷をしたいのです。 マクロ登録も考えましたが、1ページならばわかるのですが、複数会社を一回で印刷する方法がわかりません。 できれば、ページAに印刷指示セルの列を作り、ONになっている会社のみを印刷する・・・・ということが希望です。 マクロでできればよいのですが、繰り返しのまくろがわかりません。”VBAでできる”というのだけは分りますが、VBAについて、全然未経験なもので、実際の記述方法がわかりません。 過去の質問を見ましたが、該当そうなものをみつけられずに、困っています。どうぞよろしくお願いします。

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

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

私も何度も回答してます。 例データ Sheet1はデータシート A1:E5 行番号 氏名 住所 年齢 印刷 1 大田 東京都 34 p 2 山田 横浜市 36 3 上村 千葉市 15 p 4 木村 静岡市 16 p Sheet2は印刷シート そこに行って A1に「1」と入力(A1はどこか目立たないところでもよい) あるいは第1列か第1列を遊び行にしてしまう。 氏名を印刷したいセルに =VLOOKUP($A$1,Sheet1!$A$1:$C$100,2,FALSE) 住所をセットしたいセルに =VLOOKUP($A$1,Sheet1!$A$1:$C$100,3,FALSE) これは判りますね。他の項目も好きなところへ、第3引数だけ変えて 式をセット。 (印刷) ALTきを押しつつF11,I,Mを順次押すと、標準モジュール画面になる。 そこへ下記をコピペする。 骨子ですが Sub test01() Range("A2:J20").PrintOut End Sub ーー これでは今の1ページしか印刷しない。 VBAでA1を変化させる。するとSheet2の中身が変わります。 ●これを第2行から最下行まで繰り返し ●F列がブランクで無い行だけを印刷する に改良すると下記コードになる。 ーー Sub test01() Dim sh1 As Worksheet Dim sh2 As Worksheet Set sh1 = Worksheets("Sheet1") Set sh2 = Worksheets("Sheet2") '-- d = sh1.Range("a65536").End(xlUp).Row For i = 2 To d If sh1.Cells(i - 1, "E") <> "" Then sh2.Cells(1, "A") = i - 1 sh2.Range("A2:H20").PrintOut End If Next i End Sub ーー これをF5を押して実行する。 このほかにも、ボタンをクリックすると実行する、などの方法があるので、勉強してください。 ーーー 印刷シートのSheet2に関して、書式、行高、列幅、印刷設定についてはVBAでやってません。手動でやってください。VBA熟練者には、型破りですが、そのほうが初心者には判りやすく、すぐ応用(自分で自由にできる)が効くからです。 わざわざ関数VLOOKUPを使うことを残しているのも、そういう見地からです。 自分流にチュニングが必要ですが(sh2.Range("A2:H20").PrintOutの印刷範囲など)推測して、テストしてみてください。

sun365sun
質問者

お礼

早速のご回答ありがとうございます。 丁寧な説明ありがとうございます。 早速試してみます。また経過をご報告します。 まずはお礼まで・・  ありがとうございました。m(__)m

その他の回答 (1)

  • OsieteG00
  • ベストアンサー率35% (777/2173)
回答No.1

http://oshiete1.goo.ne.jp/kotaeru.php3?q=1735364 Wordの差し込み印刷を使ってExcelのデータを印刷にした方が簡単のような。

sun365sun
質問者

お礼

早速のご回答ありがとうございます。 Wordの差し込み印刷ですか・・・考えてませんでした。 そうですね。そういうこともできますね。 今回は印刷したり、しなかったりということもあるので、これは見送りますが、また別の機会に参考にさせていただきます。  ありがとうございました。m(__)m

関連するQ&A

  • エクセルで複数シートの印刷

    エクセルでシート1からシート10までの セルA1からA5をまとめて1枚の紙に印刷したいのですが できますでしょうか? (マクロをつかわずに) プリンタのページレイアウトもうまくいかず、 10枚で出てくるやり方しか思いつかなかったのですが・・・。 よろしくお願いします。

  • エクセルで差し込み印刷をしたい。

    エクセルで差し込み印刷のようなことをしたいと思います。 が、少々違うのはラベルのように印刷用の1シートに20人分のデータをまとめて印刷したいです。 データ用のシートにNO、性別、年齢を受験者情報として、数十人分入力します。 それを一覧表の形式にした印刷用シートに出力し、人数÷20ページとして印刷したいです。 また上部に印刷ページ数も出したいと思います。 うまいマクロ、VBAを教えてください。

  • Excel,マクロ別シートからフォームに名前付保存

    以下通りの作業を自動化するVBAに関する質問です。 <Excelバージョン> Excel2013 <状況> 「Sheet1」に契約No.(連続数字でない)ごとのデータリスト。1行に1契約No. 「Sheet2」に定型帳票。A1セルに契約No.を入力。各項目は契約No.に紐づくVLOOKUP関数で可変となっている。 <必要仕様> 1クリックマクロで 「Sheet1」の全データを1行ずつ「Sheet2!A1」に契約No.を当てはめ、それぞれの「契約No.」をファイル名にして、指定フォルダに、1枚ずつPDF形式で保存。 このような仕様を満たすVBAをご教示いただけると幸いです。

  • エクセルのマクロで、印刷設定をしたいのですが可能でしょうか?

    エクセルのマクロで、印刷設定をしたいのですが可能でしょうか? お世話になっています。 会社での作業を少しでも効率よく出来ないものかと、以下のようなことを考えています。 エクセル2003を使用していますが、下記のような動作をするマクロを組むことは可能でしょうか? よろしくご教授ください。 Sheet1は、入力用のシートとして使っています。 Sheet2は、Sheet1に入力された商品データなどから、必要な箇所のみ反映されるように設定しています。 このシートは、罫線などが存在し表形式になっており、全てを印刷するとA4用紙6枚分になります。 そこで、Sheet1(入力用のシート)のJ18セルに文字が入力された場合は、Sheet2(印刷用のシート)の1ページだけを印刷したく、Sheet1のj27セルに文字が入力された場合は、Sheet2の2ページまで・・・ Sheet1のJ36に文字が入力された場合は、Sheet2の3ページまでという風に印刷範囲を設定しなくても印刷出来るようにしたいのです。 よろしくお願いします。

  • Excelデータの照合

    Excelデータの照合 こちらでも色々調べさせて頂いたのですが、自分のデータにうまくあてはめられず困っています。 Excelの元データ、入力データがあります。 元データが正規のデータで、入力データにモレがないか、ミスがないかをチェックする為に 照合をしたいんですけど、どうやったらうまく出来るかわかりません。 是非ご教授下さい。 元データ、入力データ共に2列あり、どちらも A列・・・コードナンバー B列・・・コードナンバーに対応する金額 が入力されています。 これは今現在は同一シート内に抜き出してありますが、元は別シートです。 なので別シートにあるものとして回答頂いても結構です。 入力データの中から、元データのA列、B列共に一致するものだけを抽出することは出来ますか? 不一致もしくは該当するデータがないものと、一致しているものが区別で切れば形式は何でもOKです。 (作業列を増やすとか、色分けするとか、文字で表示するとか) 出来ればVBAやマクロを使わず関数のみでお願いします。 検索を使うからVLOOKUP? 複数条件だからIF?? と色々考えましたが、2つセットで検索をかけるのがどうしても出来ず・・・(-_-;) よろしくお願いします!!

  • ワークシートの2頁目のデータが印刷されない

    用紙設定では、A4縦で設定し、ワークシートにはA4 2頁分のデータを入力したのですが、印刷プレビューを見ると、1頁分しか表示されず。 実際、印刷すると1頁しか出て来ません。 何か、設定を変えてしまったのかもしれません。 同じブック内の違うワークシートでは、入力したデータ全てが出てきます。 設定を普通に戻すにはどうしたらよいのでしょうか? ちなみに、1頁しか出力されないワークシートで、2頁目のデータは、範囲を指定の印刷では、出力されます。 誰か、教えて下さいませ。

  • Excelで、あるシートだけ非表示にしたいのですが?

    Excelで、入力用シートと印刷用シートの2枚を作って、入力用はデータや計算データを入力して、それを印刷用シートに結果だけ飛ばしています。たまに、お客さんにExclデータで提出して下さいといわれますが、入力シートは見せたくありません。 最近、VBAを勉強し始めて、非表示にする方法は見つけましたが、(使用しているのは、ワークシートの「visibie=false」です。)更にブックの保護をかけてマクロを変更出来なくしています。が、これで確実に見れなくなっているのかが良く分かりません。こんな方法で良いのか、もう少し効率の良い方法があるのか、御手数ですが教えて頂きたいのですが。

  • excelでのシート別条件比較

    別シートでの項目の比較を行い等しければデータをコピーしたいのですがうまくいきません。教えて下さい。 現状 シート1・1日の各項目のデータ入力及び集計 シート2・31日分のデータ(シート1で入力・集計した)及び累計  シート1でのデータをシート2へコピーしています。 シート1に日付指定項目を設けて、シート2の該当日にマクロボタン で転送できるようにしたいのですが、出来ないので困っています。 シート1からシート2へコピーするマクロは作ったのですが それにVBAで日付どうしの比較を付けたいのですが構文エラー が出ます。 If Range("B1").Value & "日" = Sheets("シート2").Select Range("J2").Value Then マクロ記録のコピー処理 End If VBAど素人です。宜しくお願い致します。

  • エクセル2007:シート内のデータの自動転記

    Excle2007を使用しています。 シート1のデータをシート2に自動で転記したいと思っています。 シート1 作業件名ごとにその内容、作業者名が書いてある表。 1行ににつき作業1件 A列:日付 B列:作業件名 C列:内容 D列:作業者名 シート2 作業者ごとに従事した作業をまとめた一覧表で、ひとりにつき1ページ。 表の形式(見た目)はシート1とはまったく別のもの。 作業者ごとに空欄の表が既に作られており、 1ページ目:Aさん 2ページ目:Bさん という風に、1シートに改ページしながら全ての作業者について1ページずつ一覧表になっている。 1ページは25行を使用しており、 Aさん(1ページ目)は1~25行(Bさん(2ページ目)は26~50行)となる。 1ページ目の表のうち、シート1のデータを入れられる行は11~21行。 3件あれば3行使って残り8行は空欄ということになります 日付欄はシート2のA11~A21 件名欄はシート2のB11~B21 内容欄はシート2のD11~D21 シート2には、作業者の住所や生年月日など、シート1にない項目があらかじめ入力されている。 いつもはシート1を入力後に作業者基準で並べ替えをして印刷し、 シート2の該当する作業者のページに手打ちでデータ入力しています。 シート1のデータをシート2の該当箇所に転記するだけなので、シート1が完成した段階で シート2を自動で作れたら作業時間の短縮になると思い、考え始めました。 が、VBAに詳しくないため、どこからどう手をつけたらいいものかわかりません。 お詳しい方、お知恵をいただけましたらと思います。 不足情報等ございましたらご指摘いただけましたら補足をさせていただきますので どうぞよろしくお願いいたします。

  • Excelのマクロで別のシートに追加する方法

    入力するためのシート1からデータをためるためのシート2に入力するものをマクロのボタンでできるようにしたいのですがどのようにマクロのVBA打てばいいのか分からないので教えて下さい。 したいことは、データ4列でシート1の1行目は項目の行にして、 2行目にデータを入力する。 入力したデータを切り取って、シート2の2行目に張り付けて 次のデータをシート1の2行目に入力して 同じように切り取って次は3行目、4行目…というマクロ作りたいんです。 どなたかお願いします

専門家に質問してみよう