• ベストアンサー

ちょっと特殊な連続印刷のマクロを教えてください

次のような名簿があるとします。 A列    B列     通し番号 名前     1    阿部 2    佐々木 空白   空白 4    木村 5    田辺 空白   空白 空白   空白 8    三浦 通し番号が入力されていない場合は、名前も表示されない様になっています。 セルC1に通し番号を順々に表示(マクロで指定) セルC2にその番号の名前を参照表示←個人票として印刷 番号があれば(名前が表示されれば)印刷 としたいです。 個人票を連続印刷したいのですが、空白を飛ばして、 番号が入っている人だけを印刷、というマクロがどうしても組めません。 一つ一つ、番号が入っていれば名前を印刷のようなマクロを延々と 組むことは出来るのですが、名簿が長大なのでそれは避けたいです。 よろしくお願いします。

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

  • ベストアンサー
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

現状のコードを提示していただければ回答が簡単なのですが もし、For~Next文で繰り返しの処理をなされているのであれば 途中に For i=XX To XXX If Range("A" & i).Value="" Then Next 現状のコード Next とかいれて もし、A列が空白ならば、以下のコードを実行せずに次に移る 様なコードを記述します。

yuko-saita
質問者

お礼

なるほどー。結構シンプルなんですね。ちょっとやってみたいと思います。ありがとうございました!!

その他の回答 (1)

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

>個人票を連続印刷したい しばしば,理屈では上手く行きますが実際にはうまく印刷できない場合が出てきます。簡単に言うと,印刷を出せる前にマクロが次のデータに書き換えてしまうような状況です。 (まぁ,状況がわかれば待てを入れて回避したりとかもありますが) という訳で確実な方法として シート1:リスト シート2:印刷のひな形 sub macro1() dim h as range for each h in worksheets("Sheet1").range("A2:A" & worksheets("Sheet1").range("A65536").end(xlup).row) if h <> "" then worksheets("Sheet2").copy after:=worksheets(worksheets.count) activesheet.range("C1") = h activesheet.range("C2") = h.offset(0, 1) end if next end sub とかなんとかの具合でひな形の複製にデータを埋めて必要数作成後,作業グループにして一気に印刷に出してみてください。

yuko-saita
質問者

お礼

なるほど~、シートを増やすのは検討してなかったです。 いろいろな角度から考えることが出来ました。 ありがとうございました!!

関連するQ&A

  • マクロで、指定した条件の結果によって印刷をしたい

    excelで作成している出勤簿の印刷なのですが、マクロについてお詳しい方、ぜひ教えてください。 出勤簿は”出勤簿”というシート名にあり、 氏名や社員番号等の欄へはvlookupにより、 ”出勤簿”のセルL1を検索値として、 ”名簿”というシートのA2:F51に検索をかけた結果が表示されるようにしています。 そして検索値に指定してある”出勤簿”のセルL1には、1から50まで、1ずつ数字が足され、 氏名欄が空白の場合は出力しない、という単純なマクロを組んであります。 これに今度は、”名簿”シートの6列目に”×”が入力されている人については出力しない、 逆に言えば6列目に”×”がない人のみ印刷するというマクロを追加したいのです。 いろいろ試してみましたが、どうしてもエラーが出てしまい、実行できません。 あちこちのホームページを探してみましたが、私のしたいことと合致しているものが見つからず、 こちらへ相談させていただきました。 わかりにくい文章かと思いますが、よろしくお願いします。

  • 開始行と最終行を指定して差し込み印刷するマクロ

    エクセルのマクロで、最終行と最終行を指定して差し込み印刷するマクロをお教えください。 印刷したい個人番号のスタートと終了を指定して、数字を1ずつ増やしながら印刷する場合は、下記のマクロでうまくいきます。 「個人票」のシートを差し込み印刷します。「個人票」シートの個人番号をA8セルに入力すると別に作成した「成績表」シートからVLOOKUP関数を使って氏名や各科目の得点、合計得点を表示するようにしてあります。「個人票」シートのA3セルには「自」、B3セルには「至」、A8セルには「個人番号」と名前を付けてあります。 Sub 個人票印刷() Range("個人番号") = Range("自") Do While Range("個人番号") <= Range("至") Sheets("個人票").PrintOut Range("個人番号") = Range("個人番号") + 1 Loop End Sub 今回、行いたいのは「成績表」シートのA列にある個人番号が不連続であったり、欠番があったりします。そこで、「成績表」シートのA列の例えば、A4からA10までというように、開始行と最終行を指定して、差し込み印刷するようにしたいのです。 できれば上の構文を生かしたいのですが、ご教授のほどよろしくお願い申し上げます。

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

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

  • マクロの連続印刷

    エクセルのシート1に情報が登録してあり、A列の番号をシート2のセルA1に入力すると情報が入る仕様のブイルックを組んでいます。 これを連続してA1,A2,A3と連続印刷したいのですがどのようなマクロを組めばよいのでしょうか?

  • 連続印刷のマクロをおしえてください。

    お世話になります。 Excel初心者でマクロ経験は0です。 似たような質問はあるのですが、どこから手を付けていいのかわからず、また時間も無く新たに質問させていただきます。 表1 住所録 A列 通し番号がふってあります B列 送付先 C列 郵便番号 ... というような感じです。 表2 Vlookup関数でB2に表1のA列の値をコピペするとB3、B4、B5等に表1の値が表示されます。 大量に印刷するので、表2 B2に表1のA列の値を自動で入力できるようにしたいです。 A1からA100、A101からA200というように範囲指定できれば有難いです。 マクロはどこのボタンを押して始める というところからご教示をいただけましたら有難いです。 宜しくお願いいたします。

  • マクロの連続印刷が突然不可能になりました(>_<)

    会社で使っているエクセルのマクロの連続印刷が先月まで出来ていたのが、今月突然エラーが出て2枚目以降が「印刷中」のまま動かなくなってしまいました。 使用しているマクロは下記の通りです。 Sub 個人票印刷() Range("会社") = Range("自") Do While Range("会社") <= Range("至") Sheets("社員").PrintOut Range("会社") = Range("会社") + 1 Loop End Sub 残業用紙を名前と部署だけ変えて印刷するために、指定番号分だけ繰り返すものなのですが、印刷しようとすると1枚目だけ印刷されてその後動かなくなってしまいます。 自1→至1 の場合は正常に印刷可能。 自1→至5 の場合は2枚目以降が印刷不可能になります。 何がエラーなのか確認する方法はあるのでしょうか? マクロは初心者で前任者のものを使用しているのみです。 どうかよろしくお願いします。

  • EXCELで作成した案内状を名前を入れて連続印刷したいのです。

    EXCELで作成した案内状があります。--------シート1 A欄に一連番号、B欄に名簿(名前)、 C欄に各自に伝えたい文章--シート2 (シート1)案内状には、1つのセルにVLOOKUP関数で一連番号の1.2.3.4.-----100を、入れていくと「名前」と「伝えたい文章」が次々に別セルでAさん、Bさん、Cさんと入れ変わっていきます。印刷もその都度、100回やらないといけません。(伝えたい文章も変わる) どうか、マクロでボタン1回押すだけで「1」~「100」まで自動で変わり、連続印刷できないでしょうか? 良い方法があればマクロじゃなくて、他の方法でも構いません。

  • 表引きの一括両面印刷マクロ

    こんにちは いつもお世話になっています (XP、エクセル2003) エクセルに「個人票」シートがあります。 表引きして、特定のレンジで印刷するための下記のマクロを使っています。 Sub 個人票印刷() Range("個人番号") = Range("自") Do While Range("個人番号") <= Range("至") Sheets("個人票").PrintOut Range("個人番号") = Range("個人番号") + 1 Loop End Sub 例えば、セル名の”自”、”至”にそれぞれ、1、50と入力すれば個人番号の1-50が印刷されます。 また、「個人票裏」というシートにも Sub 個人票裏印刷() Range("個人番号イ") = Range("自イ") Do While Range("個人番号イ") <= Range("至イ") Sheets("個人票裏").PrintOut Range("個人番号イ") = Range("個人番号イ") + 1 Loop End Sub というマクロがあり「個人票」を印刷してから、裏面に「個人票裏」を印刷している状態です。 今回教えていただきたいのは「個人票」と「個人票裏」を両面印刷するマクロです。 上記マクロを使わずに「個人番号」「個人番号イ」に同じ番号を手動で入力して両シートを選択して両面印刷はできています。 関連情報でも構いません。よろしくお願いします。

  • エクセルで印刷

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

  • 【マクロ】クリックすると空白を含む列を非表示に

    上司にExcelのデータが見づらいと言われて困っています。 下記のようなマクロやVBAを教えていただけないでしょうか? 例えば、 A2のセルをクリックすると、その行(2行目)から空白セルを検索して、そのセルを含む列を非表示にして、データが入っている列だけを表するようなマクロってないでしょうか? (要は、C2とE2が空白セルのとき、A2をクリックして、A/B/D/F~の列だけ表示されるようになるマクロです。 同様に3行目でも、空白セルがB3、C3なら、A3をクリックした時、A/D/E…列だけ表示されて、B・C列が非常時になるような。) 似たような機能があれば、A2クリックでなく別にボタン等を作っても構いません。 ややこしくて、申し訳ございませんが、本当に困っているので、 どうかよろしくお願いいたします。

専門家に質問してみよう