アプリ版:「スタンプのみでお礼する」機能のリリースについて

マクロ初心者なのですが、前任の作成したマクロを使っていて、ちょっと編集が必要になってしまったので詳しい方教えていただけると助かります。
エクセルで、3つシートがあり、
シートA:文書。本人につき一枚。本人と関係者名を記載。
シートB:文書。関係者ごとに各1枚。関係者名等を記載。
シートC:対象者リスト(本人-関係者1~3名)約2000件
 シートAとシートBにシートCの氏名等を差し込んで、印刷するマクロがあるんですが、
人によって関係者の数が違い、ABだったり、ABBまたはABBBとなるのでワードの差し込み印刷では対応できずエクセルのマクロで、シートCから値をもってきてAとBに値をあてはめて、AとBをそれぞれWorkSheets("Sheet1").PrintOut」で印刷、それを最後の行までループするというマクロなのですが、これをPDF化しなくてはいけなくなりました。ただ、printoutのところを「Sub outputPDF()」に変更するだけだと、PDFファイルが一枚づつ1つのファイルとして大量に保存されてしまうと思うのですが、これを一つのPDFにする方法はありますでしょうか。
よろしくお願いいたします。

質問者からの補足コメント

  • 回答ありがとうございます。データ件数が2000件近くあるので、文書の枚数にすると5000枚以上はあるので、印刷シートにまとめるのは困難でした、、。

    No.1の回答に寄せられた補足コメントです。 補足日時:2020/08/06 01:19

A 回答 (2件)

No1です。



>文書の枚数にすると5000枚以上はあるので、
>印刷シートにまとめるのは困難でした、
あらまっ‼
5000ページものPDFを一気に作ろうとしているのですか?
辞書よりも分厚いものになりますけれど、ハンドリングが悪すぎる気がしてなりません。
(広辞苑でも約3200ページ)

>印刷シートにまとめるのは困難でした、
どこから、そう判断したのでしょうか?
エクセルの行数は1,048,576行ありますので、仮に、縦にページを並べたとしても、
 1048576÷5000≒210
となり、1ページ当たり約200行以上を使えます。
実際には、そんなに必要とは思えません。
仮に、「200行/ページ」だとすると、実際のプリントでは文字が小さすぎて使い物にならないでしょう。

更に、もしも縦一列に入りきらないとしても、複数列に並べれば物理的に入らないとは到底考えられません。
万々が一、1シートに収まらないとしても、同じ発想で、印刷用の別ブックにして「ブックを印刷」にすればすむだけの話だと思います。
むしろ、メモリの割当てがそれだけ取れるのかは不明ですけれど・・・
仮に、そのような場合であっても、1000ページずつに分割してPDFを作るとか、いくらでも考えようはあるはずと思いますよ。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
データが重すぎるのか、フリーズしやすくなってるので、軽量化しながらやってみようと思います。

お礼日時:2020/08/06 22:36

こんにちは



内容がよくわかりませんが、個別で各シートを印刷せずに、一旦、「印刷用シート」などに印刷内容を全部纏めてしまってから、そのシートを印刷すれば、一つのファイルになると思いますけれど?
元のシートの作られ方によっては、改ページ位置を調整する必要があるかも知れませんけれど。

あるいは、現状のようにバラバラで作成した後、VBAからPDFを制御してひとつに纏める方法も考えられますが、こちらの方が遥かにハードルは高いと思います。
この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A