パソコン関連メモ 複数シートのEXCELブックを1つのPDFへ 「複数シートのEXCELブック」を「1度に1つのPDF文書」へ


 Microsoft Excelで作成した文書をPDFにするケースが時々あります。
 私はフリーソフトの「PrimoPDF」を使っていますが、「1ブックが複数シートで構成されたEXCEL」をこのソフトでpdf化すると「複数のPDFになってしまう」ことに気がつきました。

 で、ちょっと調べたら、実はAdobe自身のソフトでもそうなると書いてあります。(複数出来るから結合しろ、だそうです)

  http://support.adobe.co.jp/faq/faq/qadoc.sv?219023+002

 少なくともPrimoPDFの責任ではなかったと言うことですね。うーんこれは煩わしい・・・。
というわけで、「複数シートで構成されたEXCELを1操作で1つのPDFにする方法」を調べてみました。

 世間一般にはPrimoPDF以外にもいくつか公開されているPDF生成ソフトがあります。その一つ、「かんたんPDF編集」の試用版を使い、同じEXCELファイル(1ブック計31シートで構成)を対象に生成してみましたが、やはり複数PDFに分割されてしまいました。

 ひょっとしたらと思い、EXCEL各シートの「ページ設定」の余白や%をすべて統一してみましたが結果は同じでした。

 ただし、よく見ると分割は必ずしも「1シート=1PDF」ではなく、1PDFあたり1〜3シート程度でまちまちです。そしてその切れ目が何によって決まっているのか、法則性は見つけられません。(ちなみに、元ネタのEXCEL上では「改ページ」は使っていません。)
 この結果はすべてにおいて「PrimoPDF」でも同じでした。さて困ったぞ・・・。

 で、結局、以下の方法で解決しました。


【複数シートのexcelを1つのpdfに一括出力する方法】

 (1)まずシート間の「ページ設定」を共通にしておく。
  →余白・縮小率などが異なるとその部分で分割が起きる。(ようです)

 (2)excelの印刷機能で、プリンタとしてPDF作成ドライバを選択

 (3)プリンタ(PDF作成ドライバ)の「プロパティ」で、「解像度」(≒印字品質)を「300dpi」以下に設定
  →各社製品とも、デフォルトは「600dpi」になっているようです。

 (4)「ブック全体を印刷」で印刷開始する。
  →(1)の時に「作業グループ」で全シートを選択していたならそのままでよい。

 以上で、1ブック31シートのexcelファイルが1つのPDFファイルに一括出力できました!



 ちなみに、以上の動きは「PrimoPDF」「かんたんPDF編集」とも同じでした。
 過去の経験上、一般にサードベンダ製PDF作成ソフトはプリンタドライバ部分がいくつかの特定のエンジンに依存しており、例えば「瞬簡PDF」は「かんたんPDF編集」と同じ「xelo(クセロ)」を使っているようです。こうしたことから結果は同じと推測できます。

 この動きからすると、今回の制約は各社ごとの独自部分ではなく、EXCEL⇔PDF間のインターフェース(より細かく見ると印刷時のスプールデータの仕様?)に依存するように思えます。
 そのデータ量に何らかの上限があるとすると、これはユーザ調整不可能ですから、サイズは変えずに解像度を下げてその範囲に収める、というのが解決策となるわけです。

 ということは・・たまたま私がサンプルにした31シートではokでも、シート数が多いとやはりダメになる限界があるということになります。また、パソコンごとの仕様の違いが影響し、分割パターンが個別に異なる可能性もあるでしょう。

(ちなみにwordではpdfが分割された経験はないのですが、同じような現象がある可能性がありますね)

というわけで、以上ご報告でした。