エクセルでの一括印刷について

このQ&Aのポイント
  • エクセルでの一括印刷についての質問です。VBA初心者であるため、簡単なマクロ設定は可能ですが、一括印刷に関しては効率化ができるか検討しています。
  • 現在、accessからエクセルにインポートした情報を元に印刷を行っており、入力フォームに入力されたIDを元にテンプレートタブから情報を取得しています。個人ごとの印刷では手作業で行っていますが、一括で印刷する方法をVBAで実現できるかどうかについて質問です。
  • マクロ登録において、IDの最大数が変化するため、60名で登録しておくと無駄な印刷が発生する可能性があります。IDの最大数が変動しても対応できるVBAの記載方法について教えていただきたいです。
回答を見る
  • ベストアンサー

エクセルでの一括印刷について

質問させていただきます。 当方VBAは初心者でまったくかけません。ボタン設置で印刷をさせる等の簡単なマクロ設定は可能です。 そこで質問なのですが、現在accessからエクセルにインポートした情報を元に、エクセルで印刷を行っています。 添付画像の様に (1)情報をインポートするタブ (2)スタッフが使用する入力フォーム (3)情報が更新され印刷画面を作り上げる「テンプレート」タブがあります。 入力フォームタブに入力されたIDがテンプレートタブのID入力欄にリンク貼り付けされており、テンプレートタブ内では、そのIDを参照し、ほしい情報を「情報」タブから取得してくるという関数をテンプレートタブに作成済みです。 最終的に印刷をかける際に、個人ごとの印刷であれば毎回情報タブに入っているIDを見ながら入力フォームに手打ちしテンプレートタブを印刷するという流れを手作業で行えばいいのですが、最大60名分を一括で印刷することがあるので効率化できないかなぁと考えている次第です。 そこで、入力フォームに書かれている一括印刷ボタンを押すと、情報タブに入っている全ID分を一括で印刷できないかなぁと考えています。 ボタン設置を行い、マクロ登録の際に、A2から順番にコピー貼り付け、テンプレートタブを印刷 A3をコピー貼り付け、テンプレートタブを印刷・・・という流れを登録すればいいのですが、IDの最大数が変化するので60名でマクロ登録しておくと無駄になる印刷があるなぁと危惧しています。 そこで質問ですが、上記のマクロ登録のような流れをVBAで記載するとしたらどのようになりますか?ちなみにIDがない場所は空白になります。よってNull値になったらループを抜けるというVBAになるのかなと超初心者が知ったかぶりをしているのですが… ご教授いただけると幸いです。

  • NSrai
  • お礼率59% (19/32)

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

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率65% (1623/2463)
回答No.3

> VBAの式を全て書いていただけると大変助かります>< 一括印刷のボタンを右クリックしてマクロの登録→新規作成か、デザインモードにしてダブルクリックすると Sub なんとか() ←なんとかはボタンによるのでこちらでは書けません。 End Sub となるので Sub なんとか() Dim i As Long With Sheets("情報") For i = 2 To .Cells(Rows.Count, "A").End(xlUp).Row Sheets("入力フォーム").Range("C2").Value = .Cells(i, "A").Value ここに印刷コード Next End With End Sub となるようにしてください。情報や入力フォームは実際のシート名にしてください。 「ここに印刷コード」と書いているところに現在の個人印刷マクロの名前、上記でいうと「なんとか」の部分を記載してください。 なんとかでエラーになるようでしたら Call なんとか にしてください。 ボタンによってはそれでもエラーになる事がありますので、その場合は、個人印刷のコードをそのまま該当部分に入れ込んでください。

その他の回答 (2)

  • kkkkkm
  • ベストアンサー率65% (1623/2463)
回答No.2

No1です。 入力フォームのC2に入れるのを記載忘れてました。 For Each c In .Range(.Cells(2, "A"), .Cells(Rows.Count, "A").End(xlUp)) Sheets("入力フォーム").Range("C2").Value = c.Value '↑にIDデータが2行目から順に最終行まで入ります。 '印刷のコード Sheets("入力フォーム").Range("C2").Value = .Cells(i, "A").Value '↑にIDデータが2行目から順に最終行まで入ります。 '印刷のコード

NSrai
質問者

補足

Dim i As Long With Sheets("情報") For i = 2 To .Cells(Rows.Count, "A").End(xlUp).Row .Cells(i, "A").Value Sheets("入力フォーム").Range("C2").Value = .Cells(i, "A").Value ここに印刷コード Next End With 上記で間違っていませんでしょうか?

  • kkkkkm
  • ベストアンサー率65% (1623/2463)
回答No.1

マクロで最終行が求められますので以下のどちらかで Dim c As Range With Sheets("情報") For Each c In .Range(.Cells(2, "A"), .Cells(Rows.Count, "A").End(xlUp)) c.Value '↑にIDデータが2行目から順に最終行まで入ります。 'やりたいこと Next End With もしくは Dim i As Long With Sheets("情報") For i = 2 To .Cells(Rows.Count, "A").End(xlUp).Row .Cells(i, "A").Value '↑にIDデータが2行目から順に最終行まで入ります。 'やりたいこと Next End With

NSrai
質問者

お礼

お返事が遅くなり申し訳ありません。 VBAの式の理解をしないと難しいですね>< VBAの式を全て書いていただけると大変助かります>< わがままいって申し訳ありません><

関連するQ&A

  • エクセル 印刷プレビュー マクロフォームも印刷

    教えてください。 エクセルで VBAを使っています。 そのマクロをフォームのボタンを使って 1クリックで動くように、作成しました。 1シートに手順書のようなイメージでボタンを配置しています。 この状態で印刷をしたいのですが、 印刷プレビューで見たとき、並びに印刷したときに、 フォームのボタンが印刷されません。 「オプション」を見たのですが、そのような設定は ないようです。 どうしたら、印刷されるのでしょうか?

  • ACCESS97で単表フォーム上からレポート印刷をする。

    ACCESS97でマクロを使用しています。 単表フォーム上にコマンドボタン(レポートを開くマクロを使用し、単表フォームのIDを入力し印刷しています。)を配置しています。 レポートを印刷するのに、IDの入力を省略したい、どうすれば良いでしょうか。 マクロまたはVisual Basicでお願いします。

  • エクセルの印刷指定

    お世話になります。 エクセルのシートが10枚あるとします。 Sheet1の名前は「指定表」Sheet2以降は「1枚目・・・9枚目」と変更してあります。 VBAで「指定表」のA1に「1」と入力しマクロの登録ボタンを押すと、「1枚目」が出力され、以下「2」と入力し登録ボタンを押すと「1枚目」と「2枚目」が出力される、「3」なら「1~3枚目」が出力される。 と言うように入力された数値の値のシートの枚数が出るようなマクロをご教示ください。

  • エクセル2010で印刷マクロを組むには

    印刷シートに,Vlookup関数でいろいろあるタグから引用したデーターを,名簿にある個人個人のファイルとして印刷をしたいと思っています。マクロを組まないとなると,個人のデータを反映させた後,ファイル→印刷,新たに整理番号入力→ファイル→印刷と・・・いちいち,整理番号を入力後,マウスを動かし,人数分の数だけ同じ作業をしないといけないのですが,それをマクロを組んで,印刷フォームのあるタグの上部等の印刷指定していない場所に,印刷ボタンを作ってそのボタンをクリックするだけで,印刷できる方法を教えてほしいと思っています。 できれば,その個人には,通し番号があるので。番号を進ませるボタンや逆に番号を戻すボタンもあれば,なおいいし,たとえば○○番から△△番まで指定して印刷ボタンをクリック,プリンターからはその指定した分の個人情報が入力した紙ベースの資料が出てくる・・・・・となったら最高です。 よろしくお願いします。

  • Excelの印刷について

    決まった様式があり、その中で数値を1ケタづつ マス(枠)でかこまれたものがあります。 (例;12345とすれば、それぞれの桁の1つ1つが 1つのセルに入り、|1|2|3|4|5|のような 感じになっています。) 入力にあたり、作業がとても面倒であることと 計算ができないこと等から、入力用のフォームを設け、 そこから、関数を使って印刷用のフォームのマス(枠)へ 1ケタづつ振り分けることにしました。 ただ、データ数が多く、いちいち関数の置換をして 印刷するにも手間がかかるため、なにか別の方法で 一括して印刷する方法がないでしょうか? VBAでできそうな気がするのですが、 当方、VBAについては無知であるため、 可能であれば、詳細に方法を 教えていただきたいのですが・・・。 元のデータとなるものが、リストタイプではなく、 レイアウト(フォーム)タイプのデータとなるため、 差し込み印刷のような感覚でもなく・・・。 データベースソフトも考えましたが、 コスト面や作成に時間がかかるため、 Excelにて作成することとなりました。 説明がいまいち上手くできませんが、 宜しくお願いします。 環境は、WinVista,Excel2007です。

  • エクセルシートをまとめて印刷(ボタンを使い)

    Excel(エクセル)印刷について質問です。 シートをまとめて印刷する場合に シフトを押しながらシートのタブを クリックすれば印刷出来るのは、 解りますが、毎日同じ入力を行うので 下記のような事が出来ないかと思います。 Sheet1にマクロで?ボタンを造り そのボタンを押すだけで、 Sheet2~4までをまとめて印刷したい。 宜しくお願い致します。

  • エクセルで140人をマクロをつかって連続印刷?

    140人の個別IDがあります。それをVlOOKUPで参照して別のシートに引き出しています。一回一回、IDを入力しては印刷ボタンをクリックしてきました。140人を一度に印刷したり、10~40番までを指定して連続印刷したりするマクロを教えてください。

  • EXCELデータの連続印刷マクロ

    すみません。先日も質問したのですが添付のような印刷フォームに元データからデータを抽出して連続印刷をかけたいのですが印刷フォームは定型文になっており、1枚で提出になっている為、 元データが1000件近くあるので、都度印刷することが厳しい状況になっています。 印刷フォームにデータを取り込んで10件づつ印刷をするマクロかVBAをしたいのですがなかなかうまくいきません。 何か方法があれば教えて下さい。 添付のピンクの部分が元データから抽出する内容です。登録番号はすべて同じで1~10にデータを入力します。 全部で1000件近い人数分があります。

  • エクセルマクロでフォーム印刷

    エクセルマクロでフォーム上にボタンを置いてボタンをクリックしたらそのフォームをA4に印刷したいんですがどうしたらいいんでしょう。教えてください。

  • Excelでのラベル印刷

    EXCELに入力されている顧客情報からWORDの差し込み印刷機能を利用してラベルを作成したのですが、使用する人達がパソコンをあまり使い慣れていない人達なので、出来ればEXCELからボタンひとつで作成出来るようにしたいと考えています。 その時に、1件をラベルすべてに印刷したり、ラベルの位置(何行目何列)を指定したり出来るといいという事なのですが、こういう事は可能でしょうか? VBA、マクロを使用して出来るのであればそれでもよろしいのでお願いします。

専門家に質問してみよう