エクセルで会員データを仕分けて印刷する方法は?

このQ&Aのポイント
  • エクセルで名簿を作成していますが、会員全員分のデータを特定の様式で印刷する方法を教えてください。
  • 手作業で会員番号を入力して印刷する方法だと時間がかかりそうです。マクロを利用する方法があるのでしょうか?
  • 会員番号は順序がバラバラですが、それでも印刷することはできるのでしょうか?
回答を見る
  • ベストアンサー

エクセルです。至急教えてもらえませんか!!

はじめまして。よろしくお願いします。 エクセルである名簿を作っています。 <sheet1> A列に会員番号、B列に氏名、C列に住所・・・・というような表にしています。 <sheet2> sheet2のあるセルに<sheet1>の会員番号を入力するとその会員のデータが決められた様式ででてくるようにしました。 今から、この会員全員分のデータを全て<sheet2>の様式で印刷したいのですが、手作業で会員番号を入力して、印刷をしてというやり方だとかなり時間がかかりそうです。また他にも今から仕事があるので、何かよい方法を教えてください。マクロでできるのだろうとは思うのですが、昔使ったことが少しあるだけで全然覚えていません。よろしくお願いいたします。 *会員番号順に並んでいますが、数はとんでいます。例えば、1、5,19,28,29,50・・・・という具合です。

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

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

Sheet1、Sheet2を区別するため Dim sh1 As Worksheet Dim sh2 As Worksheet Set sh1 = Worksheets("sheet1") Set sh2 = Worksheets("sheet2") を入れる。 Sheet1の第1行から、第x行まで処理するため For i = 1 To x Next i を入れる。 Sheet1からSheet2へセルごとにデータを写すため sh2.Cells(u, v) = sh1.Cells(i, "B") を項目数だけ並べる。Sheet2のセルのU行,V列とSheet1の列Bは印刷レイアウト(項目配置)から決まる。 Sheet1の1行でSheet2の印刷用紙1枚のデータがセットされると、印刷する。 それにはsh2.Range("A1:J40").PrintOutを入れる。 A1:j40はSheet2の印刷範囲で決まる。 印刷範囲は様式で決まる。 ざっと Sub test01() Dim sh1 As Worksheet Dim sh2 As Worksheet Set sh1 = Worksheets("sheet1") Set sh2 = Worksheets("sheet2") x = 100 '第100行までの場合 For i = 1 To x sh2.Cells(u, v) = sh1.Cells(i, "B") '・・・・項目数だけ列挙記述 sh2.Range("A1:J40").PrintOut '印刷 Next i End Sub のようになる。 住所2(例えばマンション名)などで、人によりあったりなかったりする項目は、印刷ごとにクリアしておくこと。

ijnnenhhh
質問者

お礼

お礼が遅くなり大変失礼しました。 当日は、時間的に焦っていたために結局手作業になりましたが、後から改めて読むととても分かりやすい説明でした。今後も同じようなことが何度もありそうなので、参考にさせていただきます。 詳しい解説本当にありがとうございました。 またよろしくお願いします。

関連するQ&A

  • 【エクセル】別シートの名簿の項目を本シートに1人ずつ落とし、数人分までを連続印刷するマクロについて。

    いつもお世話になってます。 マクロの記述で質問します。 シート2に連番の名簿番号の付いた名簿を作ります。 シート1に文書の様式を作ります。 シート1の文書の様式の枠外のA1に名簿番号を入力すると シート1の様式にシート2の同じ名簿番号の者の氏名・住所・電話番号が各欄に表示されます。 印刷ボタンを押すと様式が印刷されます。 ここまではマクロで作ったのですが、(たいしたことありませんが。) シート1のA1に”4”、B1に”12”と入力し、印刷ボタンを押すと、 名簿番号4~12までを順次様式に反映させ、9枚連続印刷する。 というところまで作りたいのですが、どのようなマクロの記述になるのか判りません。 例としてどのような記述になるのでしょうか? もしくは、参考になる過去の質問や参考になるようなサイトなどご存知でしたら教えてください。よろしくおねがいします。 (エクセル2003)

  • データ参照して名簿の氏名に番号を振りたいのです。

    エクセルのファイルが二つあります。 No.1 50音順の全ての会員名簿 No.2 当月の会員整理番号つき名簿(整理番号は毎月変わります。この名簿には、全ての会員が載っているわけではありません) No.1の50音順名簿には、A列が空欄、B列がカナ氏名、C列が漢字氏名になっています。(1行目はタイトル行で、2行目以降に氏名が入っています) No.2の名簿を参照して、1の50音順名簿のA列に「当月の会員整理番号」を自動で入力するようにしたいのです。 例えば、50音順名簿の2行目は鈴木一郎さんだとします。今月の彼の番号はNo.2の名簿によると33番だとします。その場合、50音順名簿のA2セルには33と表示させたいのです。(もし、No.2の名簿に鈴木一郎さんの名前がない場合は、空欄として表示したいのです) このデータを印刷することで、50音順名簿から整理番号を確認するのが大変楽になります。 VLOOKUP関数を利用しようと思いましたが、私の方法が悪かったのでしょう、エラーになってしまいました。 自動的に入力されるようにしたいので、改めてセルに数値を入力したくはないのですが、いい方法はあるでしょうか? No.2の名簿ファイルは、データをコピーして、No.1の50音順名簿の別シートに貼り付けても構わないと思います。 よろしくお願いします。

  • excelでマクロを使用した連続印刷について

    A2セルから通し番号、氏名、住所等のデータが入力されている「データ」シートがあり、 VLOOKUPを使用してB3セルに「データ」シートのA列にある「通し番号」を 入力すると氏名・住所等が反映される「印刷」シートがあります。 例えば「データ」シートのC列(住所)に「東京都」という文字列が 含まれている宛名のみを連続で印刷したい場合、 どのようなマクロになりますでしょうか? (マクロ内に「東京都」と指定する方法と、 シート内の特定セルに入力した文字列で指定する方法が ありますでしょうか?) wordでの差し込み印刷や、宛名ソフト等の使用は考えておりません。 よろしくお願いいたします。

  • エクセルで2つの表を見比べる

    上手く表現出来ずに変なタイトルになってしまいました… sheet1に顧客全員の名簿があるとします B列には顧客の氏名、C列には会員のランク(3種類のランク分けがしてあります) という名簿です。 sheet2にはある商品を購入した購入者名簿があります。 D列に顧客の氏名、その他の列には住所などが入力してあります。 (順番は購入日順なので、バラバラです。) sheet2の購入者名簿に名前のある顧客の氏名を sheet1の顧客全員の名簿から探し、C列の会員ランクを 『上得意』と変えたいのですが関数などを使って 簡単に出来る方法ってありますか? 会員数が6000名、商品購入者が200名くらいと 数が多いので1件1件検索すると時間がかかります… VLOOKUP関数なんかで出来たかなと思ったんですけど 勉強したのがだいぶ前なのですっかり忘れてしまいました。 詳しい方、ぜひいい方法を教えてください。

  • エクセルで印刷

    エクセルのシートに名簿があります。 A列に番号(1~70)、B列に住所、C列に氏名・・G列まであります。 シート2の指定したセル(c3.c5・・)にシート1の指定した 番号の住所、氏名を印刷したいのです。 同じシートでも構いません。 シート上側に印刷フォーム、下側に名簿を移します。 番号指定、印刷、1枚づつの印刷でも構いません。 過去の質問を見たのですが難しくて理解できません。 PC初心者ですが宜しくお願いします。

  • インプトボックス関数を使って・・

    A列:通し番号1から順に,B列:氏名,C列:電話番号 等 データの入ったシート1からインプットボックスに通し番号の数字を入力してOKボタンを押すと、該当するの氏名、電話番号が別のシート2の設定場所、たとえば、セルC1へ氏名、セルE1へ電話番号を移す方法を。マクロがうまくいきません。

  • Excel VBAを使って会員検索

    Sheet1のA列に会員番号、B列に氏名、C列にフリガナ、D列に住所といったデータがあります。 Sheet2のA列に会員番号のみがあります。 この2つのデータを照合して、一致した場合のみ、Sheet1の該当会員データの横のセルに“一致”もしくは“1”などの値(上の例だとSheet1のE列に)を入力できるようなVBAを組みたいのですが、教えていただけますでしょうか?

  • 至急なんです~(>_<)!エクセル差込印刷(連番とんでる編)

    過去の質問で差込印刷などの要領はわかったのですが、同じような質問がないのでこちらから質問させていただきます。 sheet1に元データ sheet2が帳票用(印刷用)となってます。 sheet1のA列に連番が入ってますが、 こちらはA1=1、A2=空欄、A3=2、A4=3 などとランダムな行にに連番が入ってます。 B列に会員番号が入ってます。 なのでA列の連番の1.2.3.4.5.6のすぐ右横のセルB列(会員番号)をsheet2のA1セルに入れて連続印刷していきたいのです。 2500人ほどの会員への手紙を明日中に発送しなくちゃいけなくて困ってます。 ちなみに「sheet2」は「A1」のセルにさえ会員番号が入れば出来上がるようになってます。 どうかわかる方がいましたらお力添え宜しくお願いいたします。

  • エクセルにて索引を作成したい

    質問させていただきます。 エクセル2007にて名簿を作成しています。 シート1には氏名順で、それぞれ事業所、住所、電話番号が記載されています。 シート2以降には他に名簿に記載しなければいけない事項が記載してあり、 シート12に、A列には事業所順に、B列にはその事業所が記載されているページ数を入力して索引を作ろうと思っています。(事業所順は既に作成済みです) シート12のB列にページ数を抽出する良い方法はないでしょうか。 シート1を一度印刷し、自分でめくりながら調べるつもりでしたが 事業所が300近くあるので簡単にできれば・・・ 関数使用でもマクロ使用でもかまいません。 尚、1事業所に複数の人物がいる場合もありますが、 その場合はページ番号が若い人のページ数一つを拾ってもらえればかまいません。 似たような質問は他にもありましたが、どれも自分が求めているものとは違うようなので質問させていただきました。 よろしくお願いします。

  • VLOOKUP関数が数式として認識されません!

    スポーツクラブの学童会員名簿を作成しています。 【目的】 VLOOKUP関数を利用して、シート1「名簿」のA列に会員番号を 手入力すると B列に学年、C列に氏名が各々自動入力されるようにしたい。 【設定】 ・シート1を「名簿」とし、  A列を会員番号、B列を学年、C列とD列を結合して氏名としました。 ・シート2を「参照データ」とし、  A列を会員番号、B列を学年、C列とD列(結合を解除)を氏名と  しました。 ・シート2の1行目はタイトル行とし、実際のデータが入っている  部分はA2:D20です。 ・シート1、シート2の全データは文字列として書式設定しています。 【状況】 学年を検索するための数式をシート1のB2に以下のとおり 入力しました。  =VLOOKUP(A2,参照データ!$A$2:$D$20,2,0) ところが、B2セルには正常な値(学年)が表示されずに 上記の数式がそのまま表示されてしまうのです。 A2に会員番号を入力してもB2の表示は変わりません。 本やウェブで解決方法を調べてみましたが、一向にわからず 困り果てております。 私はエクセル初心者なので一般的にはくだらない質問かも しれませんが、何卒ご教示くださいませ。

専門家に質問してみよう