2016
12
02

ExcelVBAで複数のシートを結合PDFファイルへ出力する

久しぶりにExcelのシートをPDFに出力する案件をやってみたら、おいマジかよ今PDFへの出力ってそんなに楽なのかよってショックを受けました。


背景

昔こういう記事を書いたんですけどね。これを初めてやろうとしたのってもう軽く10年くらい前でOffice2003だったわけで。

現在ではPDFへの出力がたった1行で済む世界になっておりました。前のコードの供養のためにも新しい案件で書いたコードを残しておきます。

ざっくりした仕様

161202-1

罫線とか見出しとか必要なテンプレートが入っている「原紙」シートが1枚ありまして。リストとかからループさせて、条件に合ったとき(11月だけとか)、原紙をコピーしてそのテンプレの中身を埋めて…、というシートを複数作って、PDF化します。

印刷したいシートを全部選択した状態でPDFへ変換すれば、1つのファイルに結合されたPDFになります。VBAで複数シートを選択するには、シート名を全部配列へ格納する必要があるみたいだったので、そのあたりを盛り込んでます。

PDF変換後は印刷用に作ったシートは消しちゃいます。描画を非表示にして実行すれば、原紙コピーして削除して、というところが見えないので、なんかスマートにPDFにできちゃった感があっていいかもしれません。

コード

印刷用のシートは原紙をコピーして、いったん1, 2, 3…という名前のシートにします。印刷用シート名を配列に入れて全部選択してPDF化したら削除しちゃう、という流れになってます。

  • このエントリーをはてなブックマークに追加
  • follow us in feedly 618
  • RSSを登録

公開日:2016/12/02


コメントを残す




*印は必須項目です。コメントは承認制ですので、反映までしばらくお待ち下さい。(稀にですがスパムの誤判定にて届かないこともあるようですので、必要な際はお問い合わせからお願い致します。)


back to top