• ベストアンサー

エクセルのVLOOKUPで作成した表をまとめて印刷する方法を教えてください!!

エクセルのVLOOKUPで、番号を入力するとで個人名およびその個人のデータが表示されるA4の表があります。1人のデーター表を印刷するのには1人目の番号を入力して印刷をして、2人目の番号を入力して印刷をして・・・という順でしていましたが、1人ごとの印刷ではなく、180人分の表をまとめて印刷したいのですが、その方法をどなたか詳しく教えてください!!印刷される表はVLOOKUPで作成された表のまま印刷したいと考えています。よろしくお願いします。

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

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

本来であるならばワードの差し込み印刷の手法を用いて、ワードで印刷する1ページの画面を作成してそこにエクセルのデータを貼り付けてゆくことで、番号を変えた人の連続印刷ができます。 しかし、それではなくエクセルのシートで連続印刷となりますと、マクロを使うことになりますね。 例えばシート1に印刷の画面があるとして、シート2に番号や氏名、その他のデータがあるとして、シート1ではVLOOKUP関数でシート2のデータを用いて印刷の画面を作っているとします。 そこでシート見出しでSheet1を右クリックをして「コードの表示」を選択します。表示される画面の右側の窓には次のようなコードを入力します。 Sub 連続印刷() Set WS1 = Worksheets("Sheet1") Set WS2 = Worksheets("Sheet2") Dim m As Integer Dim RowPos As Integer m = WS2.Range("A65536").End(xlUp).Row For RowPos = 2 To m WS1.Range("B1") = WS2.Cells(RowPos, 1).Value WS1.Range("A1:H40").PrintOut Next End Sub ここでシート1のB1セルに番号が入力されるとして、それらのデータはシート2のA2セル以降のデータが読み込まれるとしています。また、A1セルからH40の範囲を印刷するとしていますが適当に変えてください。 印刷を実行するためには「開発」タブから「マクロ」をクリックして「Sheet1.連続印刷」を選択してから右側の「実行」をクリックすればよいでしょう。

bom_baye
質問者

お礼

早々の回答ありがとうございます。やはりマクロしかありませんね。早速ご提示いただきました論理式を代用させていただきましたところ、印刷可能な状況です。自分で論理式がスムーズに組むことが今後の目標にしたいです。論理式が組めるようになる方法を簡潔にまとめられたサイト・資料(書籍等)がございましたら教えてください。このたびは大変役に立ちました。ありがとうございました。

その他の回答 (1)

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

質問者がしたいことが質問文では伝わらない。 実例でも挙げて説明しないと。 >180人分の表をまとめて (1)表には一名1ページの表と (2)1名1行で数十名が縦に並んでいる表と ある。印刷したいのはどちらか、質問文からあいまい。 (2)の場合普通に印刷すると、何処が質問者の意向と違うことになるのか。 (3)あるいは(2)形式のデータで(1)形式の表を作り 180ページを自動で印刷したいということか。 ーー (3)なら再度説明するのも大変なので、Googleで「imogasi請求書」で照会すれば、実例が出ます。 印刷は自動でやるのは関数では出来ないので、最低限数行のVBAを使ってますが、後は関数を使ってデータを整える方式で、VBAに詳しくない人のために考えた、妥協策です。 ーー 下記の私の回答。一覧表形式データから関数で1枚ものの表形式に する方法を書いています。 http://oshiete.filesend.to/qa5356280.html http://okwave.jp/qa2798008.html http://oshiete.home4u.jp/qa5101923.html など。

関連するQ&A

  • エクセルのVLOOKUPの印刷方法について

    エクセルのVLOOKUPの印刷方法についてですが、シート(1)(データ1~100)をシート(2)(個表)にVLOOKUP(1~100までの個表を番号入力でデータを表示する)で作成したあと1~100までの個表をいっきに印刷をする方法を教えてください。現状は個表の表は1つだけ作成していますので、1~100までの番号を随時入力して印刷しなければなりません。ご回答よろしくお願いします。

  • Excelで、表を作成したいのですが…

    データの整理を、各フォルダに 個人・団体名と、会員番号をつけて登録月日の順で表を作っていました しかし、先日 HDが壊れたため Excelのシートが消えてしまいました データの入ったドライブは無事だったので、  [フォルダ名をコピー]⇒[セルに貼付け] を繰り返せば同じシートが作成できます この作業を簡単なマクロで自動化する方法はないでしょうか 約1000件分なので時間を掛ければ何とかなるとは思いますが、他にも消失したデータがあり困っています どうか、よろしくお願いします//

  • エクセルで作成した縦に長い表をA4に2列で印刷

    エクセル2007で作成した縦に長い表をA4縦方向に2列づつ印刷していくにはどうすればよいのでしょうか? 表は顧客リストなのですが、縦に長い表をエクセルで作成しました。 表は新しい顧客情報をどんどん下に入力していくので表はどんどん縦に長くなります。 また、データをおいうえお順で並べ変えたりするので この縦に長い表のフォーマットは便宜上くずしたくないのです。 細長い表なので印刷する場合はA4用紙縦方向に2列づつ印刷していきたいのです。 そういうことは可能でしょうか? 割り付け印刷ではうまく表を2列に配置できず見栄えがよくなく、 何か良い方法があれば教えてください。

  • VLOOKUPでエクセル表の結合をするには?

    VLOOKUPを使用してエクセルデータAにエクセルデータBを追加していくのはどうすれば良いのでしょうか?元のA表はすごく大きな表で、追加の表を付け足していくのですがお助けください

  • エクセル(VLOOKUP関数)~続です。

    先程の質問の続きになるのですが、 エクセルにデータを入力をしていきたいのですが、数が何万件とあります。まず、コード表が2つあります。(2つのコード表はコード番号が重複しています) 本店が1で支店が2です。 セルAの1に本店コード1を入力したら本店コード表を基にして、VLOOKUP関数でセルAの2に種類コードを入力したら、セルAの3に種類名がでてくる。セルAの1に支店コード2を入力したら支店コード表を基にして、VLOOKUP関数でセルAの2に種類コードを入力したら、セルAの3に種類名がでてくる。このようなつくりにはできますか? 店名コード コード番号 種類名  1      1111   りんご  1      1112   ぶどう  2      1111   人参  1      1114   なし  2      1112   レタス 上記のような感じです。コード番号自体は重複しています。ただ店名コードが変わると、種類名が果物と野菜と区別されている感じです。 説明が分かりにくかったら補足致します。すみませんが分かる硬いましたら、ご教示ください。宜しくお願いします。

  • excel VBA 一覧表印刷 個別氏名表示

     成績一覧表で40名分の番号と氏名を1名のみ表示し,それ以外を 空白にし連続40名分印刷したいです.マクロの知識が少なく, ネットで調べましたがありません。vlookup関数は使えません。 表一枚を個人番号と氏名での連続印刷となります。すいませんが, 教えて下さい。よろしくお願いいたします。 

  • VLOOKUPとVBAを使っての複数のデータの一括印刷について

    パソコンにそれほど詳しくないものです。よろしくお願いします。 以下のようなことが可能かどうか、また、可能であれば方法を教えていただきたいのですが・・・ まず、エクセルのシート2には各店舗のデータがそれぞれ入っています。そしてシート1に表紙を作り、各店舗の店番号をA1セルに入力すと、シート2のデータより売上などをVLOOKUPで引き込むように設定してあります。この方法でやると、印刷の際に一店舗ずつ入力してから印刷をしないといけないのですが、任意の複数店舗の番号を入力するとその店舗分が一括で印刷できるVBAなどは無いでしょうか・・・ 例えば、1~10までの店舗番号があったときに、1、4、6を入力することで3店舗分が印刷されるようにしたいのですが・・・ よろしくお願いします。

  • エクセルで差込印刷:マクロとVLOOKUP

    みなさん、こんにちは。 今回、マクロを作成する際にどうしてもうまくいかない部分がありまして とても困ってしまい、初めて会員登録し質問させていただいております。 皆様に御教授いただき真摯に勉強させていただきます。 どうぞよろしくお願いいたします。 (マクロ初心者で簡単なガイドブックやネットを参考に作成しています。) 今回エクセルのみを使った差込印刷のマクロを作成したいのですが、 まず、Sheet1に「5列×20行の表」があり、下記内容が入っています。 A列:行番号1~20 B列:会員番号 C列:所属名 D列:日付 E列:氏名 Sheet2に「手紙のフォーム」があり、 Sheet1の表の各項目を、VLOOKUPを使用し、 Sheet2の各位置へ差込むように設定をしました。 (VLOOKUPの検索値は、Sheet2の"R1"となるよう設定しています。) データを差し込んだSheet2の1ページを印刷したいです。 今回どうしてもうまくできないのが、手紙は毎回違う人へ違う人数分作成するので、 印刷時点で表に入力されている人の数だけを印刷したいため、 E列(氏名)が空白になったら停止する設定をしてみたのですが 下の自分で作ったマクロを実行すると、全ページが印刷されてしまいます。 Sub 差込印刷() 行 = 2 Dim 番号 As Integer For 番号 = 1 to 20 If Sheets("sheet1").Cells(行,5).Value = "" Then Exit for Sheets("sheet2").Range("R1").Value = 番号 Sheets("sheet2").PrintOut from:=1,To:=1 Next 番号 行 = 行 + 1 End Sub とても単純なミスをしているのだと思うのですが なにぶん初心者なためそれに気がつくことができません。 (For~Next等も見よう見まねで初めて使いました・・・) 月曜日までに分かるととても助かるのですが、 皆様どうぞよろしくお願いいたします。

  • エクセルを使って当番表を作成したいのですが・・・

     関数を使った当番表があるのですが、改善しようと考えています。現状の当番表を作成したのは私ではなく、エクセルのレベルは決して高くありません。よい方法を教えていただければと思います。 現状・・・一つのシートに1ヶ月単位の当番表を作成しています。そのシートをもとに1日単位の当番表が出力できるように関数VLOOKUPを使用し、別のシートで1日単位の当番表を出力できるようになっています。当番の電話番号一覧のシートがあるのですが、現在1日単位の当番表に手書きで当番の番号を記入しています。  ・使用している関数=VLOOKUP($Y$8,1ヶ月当番表!:$AM$32,23,FALSE)  ※Y8に日にち(1.2.・・・31)を入力するとその日の当番が反映されるようになっています。 希望・・・1日単位の当番表に関数を使って個人の電話番号データが反映されるように改善したいと考えています。  説明が不十分かと思いますが、よろしくお願いします。

  • EXCEL 2003にて予定表を作成しています。

    EXCEL 2003にて予定表を作成しています。 祝日を、VLOOKUP関数にて表示しました。 =VLOOKUP(A5,$F$5:$G$20,2,FALSE) エラー( #N/A )を非表示にするための関数を 入力するも、上手くいきません。図添付 =IF(ISERROR(VLOOKUP(A5,$F$5:$G$20,2,FALSE),"",VLOOKUP(A5,$F$5:$G$20,2,FALSE)) 「入力した数式は正しくありません」と表示されます。 正しい数式を教えてください。よろしくお願いします。

専門家に質問してみよう