選択した複数ブックのシート1を一度に印刷する方法について

このQ&Aのポイント
  • 現在、EXCELにて顧客管理の表を作成している際に、複数のブックの中にあるシート1を一度に印刷する方法を探しています。
  • 作成した予約確認表を顧客に一斉に配布するためには、一度に複数のシート1を印刷する必要があります。
  • 新しいブックにシート1をリンクさせることで、通常の印刷方法で選択したシートのみを一斉に印刷できる方法を検討しています。また、マクロを使用する方法も求めています。
回答を見る
  • ベストアンサー

選択した複数ブックのシート1すべてを印刷するには?

お世話になります。 現在、EXCELにて顧客管理の表を作成しているのですが、ブックの数が顧客人数分の200ほどあります。 それらのシート1に顧客に配布する予約確認表があるのですが、選択した任意のブックのシート1を一度に印刷できないかと思っています。 そこで現在考えている方法は、作成したシート1全体を、外部参照などの方法で新しいブックにリンクさせ、新しいブックにすべての顧客の予約表をいれるのはどうかと考えています。 単なるコピーではダメな理由は、途中で変更があった場合に参照元を変更したら参照先も自動で変更されるようにしたいのです。 これが出来れば通常の印刷のページ指定である程度選択したシートのみ一度に印刷が可能です。 マクロでも結構ですので簡単に全ての参照元のブックのシート全体を新しいブックへ外部参照する方法があれば教えて頂けたらと思います。 もしくは、「指定したフォルダに入っている任意のブックのシート1をすべて印刷する」といったプログラムが出来るならそれでも大丈夫です。 あくまでも目的は任意のブックのシート1を一度に印刷をかけるという事ですので何か良い方法がありましたらお願いいたします。

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

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

新しいマクロブックを用意する マクロブックを顧客ブックが保存してあるフォルダに保存する (以前のマクロブックは破棄する) マクロブックを開く ALT+F11を押す 現れた画面で挿入メニューから標準モジュールを挿入する 現れたシートに下記をコピー貼り付ける sub チェックボックスの準備()  dim n as long  dim myPath as string  dim myFile as string  activesheet.checkboxes.delete  cells.rowheight = 16  mypath = thisworkbook.path & "\"  myfile = dir(mypath & "*.xls*")  n = 1  do until myfile = ""   if myfile <> thisworkbook.name then    n = n + 1    activesheet.checkboxes.add(range("B1").left, cells(n, "B").top, 300, 1).caption = myfile   end if   myfile = dir()  loop end sub sub チェックしたブックの印刷()  dim c as checkbox  dim myPath as sting  mypath = thisworkbook.path & "\"  for each c in activesheet.checkboxes   if c.value = 1 then    workbooks.open mypath & c.caption    workbooks(c.caption).worksheets("予約確認表").printout    application.wait now + timeserial(0,0,10)    workbooks(c.pation).close false   end if  next end sub チェックボックスの準備を実行する チェックしたブックの印刷を実行する。 .

gellgugu
質問者

お礼

チェックボックス機能付きのコードまで作成して下さりありがとうございました! 2箇所コードの打ち間違いがありましたが、なんとか自力でデバッグ解消できました。 keithinさんのおかげで完璧にやりたいことが出来るようになりました。 本当にありがとうございました。

その他の回答 (1)

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

【とりあえず簡単に作成する方法】 顧客ブックを1冊開き、管理表の表範囲をコピー、集約ブックの所定のセルに「形式を選んで貼り付け」で「リンク貼り付け」を行います 顧客ブックを閉じます リンク貼り付けた数式が、保存場所まで含めた数式の記載に変わることを確認します リンク貼り付けした数式のセル範囲をコピー、次の所定の場所に貼り付けます 貼り付けたセル範囲を選択した状態で Ctrl+Hで置換を開始 最初のブック名 を 次の顧客のブック名 にすべて置換します すると、次の顧客ブックの所定シートの所定のセル範囲を参照する数式に、一斉に書き換えることができます。 以下繰り返しで、各顧客ブックを参照する数式を量産していきます。 【問題点】 >それらのシート1に顧客に配布する予約確認表がある これは具体的に、正確に、 ●各顧客ブックに必ず「シート1」という名前のシートが間違いなく存在していて、そこに管理表が作成してある ●実は「1枚目のシート」という意味で、ブックによってシート名が違う場合もある どういう状況なんでしょうね。 マクロとか作るのは別にそんなにムズカシイ話じゃありませんが、こういった「事実」にキチンと即したマクロを教わらないと、役に立ちません。それとも?アバウトに教わればあとはご自分でなんとかできるツモリがあるってことでしょうか。 印刷マクロ用ブックを用意する ALT+F11を押す 現れた画面で挿入メニューから標準モジュールを挿入する 現れたシートに下記をコピー貼り付ける sub macro1()  dim myPath as string  dim myFile as string  mypath = thisworkbook.path & "\"  myfile = dir(mypath & "*.xls*")  do until myfile = ""   if myfile <> thisworkbook.name then    workbooks.open mypath & myfile    workbooks(myfile).worksheets(1).printout    application.wait now + timeserial(0,0,15)    workbooks(myfile).close false   end if   myfile = dir()  loop end sub マクロを登録したブックを、顧客ブックが保存してあるフォルダの中に一緒に保存してから、マクロを実行する

gellgugu
質問者

補足

早速ご返信頂きありがとうございます。 問題点の部分は正確な情報をお伝え出来ておらず申し訳ありませんでした。 シート1は全て同じ名前のシート名(予約確認表)となっております。 とちらも試してみました。 そしてどちらもうまくいきました。 素晴らしいです。 マクロの方ですが、同一フォルダの中にあるすべてのブックではなく、選択するようには出来ないものでしょうか? マクロ用ブックの中に顧客ブック名とそれぞれにチェックボックスがあり、チェックがあるもののシート1(予約確認表)を印刷するような。 もし簡単に実装できそうなら教えて頂けたらと思います。 【とりあえず簡単に作成する方法】でも十分やりたいことが出来ますので上記が難しいものでしたらこのままベストアンサーとさせていただきたいと思います。

関連するQ&A

  • エクセルでのブックの印刷とフォントの変更

    エクセル97を使っています。ブック全体とか複数のシートを一度に印刷したりできるでしょうか。一枚一枚指定しては印刷ということの繰り返しは、非常に面倒です。よい方法がありましたら、ご教示ください。それから、ブック全体とか複数のシートの文字の字体だけをすべて変更したいのですが(具体的には、ゴシックを明朝に)どのようにすればよいのかわかりません。あわせてご教示ください。

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

    エクセルの1つのブックに複数のシートがあった場合、その中の選択したシートのみを印刷することは可能なのでしょうか? または、ブック全体を選んで印刷しても、任意のシートは印刷しないようにする方法などあるのでしょうか?

  • Excelでブック全体印刷のシートの順番

    Excel2010で6シートあるファイルを、ブック全体指定で印刷をしたところ、左のシートから順番に印刷されません。(シート名は変更されています) 左から順番に印刷されるようにするには、どうすればよいでしょうか?

  • [Excel2003]複数のブックの各シートを印刷したい

    お世話になります。 複数のブックの、全シートを印刷する方法はあるのですが 複数ブックの、各シートごとの印刷をする方法が思いつきません。 例えば book1にはsheet1、sheet2があり book2にもsheet1、sheet2があり 全ブック(book1とbook2)の各sheet1(book1のsheet1とbook2のsheet1)を印刷 全ブック(book1とbook2)の各sheet2(book1のsheet2とbook2のsheet2)を印刷 ということは可能なんでしょうか? 表現がわかりづらかったらすみません。 なにかいいお知恵があれば、教えていただけるとありがたいです。 どうぞよろしくお願い致します。

  • エクセルで複数のファイルの全てのシートを印刷する方法

    宜しくお願いします。 エクセルファイルが複数あり(例えば10個)、 その10個のファイルの中の複数のシートを全て 印刷したいです。 一つ一つ開き、ファイル→印刷→book全体 を選択していくしかないのでしょうか・・・? エクセルファイルを開かずに、Shiftキーで全て 選び、右クリック→印刷 だと開いているシートしか 印刷できないし・・・。 プリンタの設定では、印刷対象”book全体” はせんたくできない(表示されない) いい方法ないでしょうか? 教えていただければと思います。

  • 複数のエクセルブックの中のシート指定して一括印刷

    複数のエクセルブックの中のシート指定して一括印刷 複数のエクセルブック(400枚)がある中で、シートが1~4あります。 そのエクセルブックの中のシート1とシート3だけを印刷していきたいのですが、 400回エクセルを開いてシート指定しないと印刷できないでしょうか? できれば、全ブックのシート指定をして、一括での印刷は可能でしょうか? 良きアドバイス等がありましたら教えて頂けたらと思います。 宜しくお願い致します。

  • シート全体を他のブックのシートとリンクさせたい

    エクセル2010を使っている者です。 (1)Aファイル中のあるシート全体をBファイル中の指定したシート(別ファイルになってますが、フォーマットはほぼ同じです)とリンクさせ、外部参照してデータを取り込めるようにすることは可能ですか? (2)また、AファイルがBファイルのデータを外部参照するというよりは、Aファイル、Bファイルの当該シートに変更があった場合は、お互いに変更箇所を取り込めるようにするこは可能ですか? (これは外部参照ではなく、共有というのでしょうか) どちらか片方であってもありがたいので、ご教授願います。

  • エクセル2007全てのシートを両面印刷するには?

    シートが30枚以上あるエクセルファイルで、全てのシートを両面印刷したいのですが、全てのシートを選んだり、「印刷対象」でブック全体にしたり、「プリンタとFAX」で使うプリンタを選んでプロパティで両面印刷を選んでも、全てのシートに「両面印刷」が反映されず、シート毎に印刷設定しているのですが、30回以上同じ操作をせずに済む方法を教えて下さい。片面印刷の方が早いのにと思いますが、職場で両面印刷が奨励されていて、シート数の多いエクセルファイルが多く、困っています。

  • エクセルの複数ブックをまとめて印刷したい

    お世話になります。 早速ですが、フォルダ内に複数のエクセルブックがあります。それらのブックには複数のシートがあります。 フォルダー内の複数のブックの複数のシートも含むものを一括印刷したいのですが可能でしょうか? フォルダー内を一括選択し、ファイルの印刷をした場合、 複数のブックを印刷することは可能なのですが、それらにあるはずの複数のシートが印刷されません。 「複数のブックの全てのシートも含むものを一括印刷」したいのですができるでしょうか? よろしくおねがいします。

  • ワークシートの軽量化

    エクセル2000の質問なのですが、 ワークシートが20枚程度あるブックを使用しています。 すべてのシートには表があり、印刷範囲外に表に入力する値が記載してあり、その値を参照して表を作成していました。 似たような表ばかりなので、新しいシートを追加しそのシートに表をまとめ、そのシートから値を取得するように変更したのですが、 元のデータの倍(1.6M)の重さになってしまい かなり重たいブックになってしまいました。 どうしたら軽くなるのか教えていただきたいです。 VBAを使用すれば問題が解決するのであれば その方法も教えていただきたいです。

専門家に質問してみよう