Excelマクロで差し込み印刷してPDFを連続出力する
Excelマクロで差し込み印刷してPDFを連続出力する

Excelマクロで差し込み印刷してPDFを連続出力する

こんにちは、事務系社員のichi3270です。

Wordの差込印刷機能、とても便利ですよね。私も色々な仕事で活用しまくってます。

でも、たまに諸々の事情で、Excelだけで差し込みしたいことってありませんか?

  • 帳票のデザインが複雑でWordだと面倒な時
  • 関数で表のデザインを変えたいとき ・・・など

・・・ということで、Excelで差し込んだPDF帳票を一括出力する方法を考えてみました。

成果物はこんな感じ。

この記事では、このような、PDFに差し込みして一括出力するマクロの作り方を解説します。

目次
  1. 帳票をつくる
  2. 台帳をつくる
  3. 帳票と台帳をVLOOKUP関数でリンクさせる
  4. フォルダ作成 & ファイルをxlsm形式で保存
  5. マクロを作成する
  6. 一括出力ボタンをつくる

帳票をつくる

まずは、差し込み先となる帳票をExcelで作りました。(お試しなので適当ですみません・・・)

シート名は 帳票 とします。

やっぱこういう日本的な帳票はExcelが作りやすいよね~

台帳をつくる

次に、帳票に差し込むためのデータを作ります。

この記事を参考に作ってみる場合は、A列は「管理番号」、B列は「一括印刷フラグ」の列にする必要があります。それ以外の列は、お好きにしていただいてOKです。

また、シート名は 台帳 とします。

この後の工程で、B列のセルに「Y」っていれると一括印刷されるようにする予定~

帳票と台帳をVLOOKUP関数でリンクさせる

次は、台帳のデータを帳票に差し込みできるようにしていきます。

A1・A2セルは、管理番号を入力する欄にします。

ここへ入力した管理番号をもとに、台帳シートのデータを取得して差し込みします。(ここでは、VLOOKUP関数を使用しました)

VLOOKUP関数は基本中の基本かつ、超重要な関数!わからない人はネットで調べて来てね~(投げやり)

ここまでだけの作業でも、結構便利だよね~。

フォルダ作成 & ファイルをxlsm形式で保存

ここまでできたら、ファイルを保存しましょう。

まずは、「Excel差込印刷」というフォルダを作ります。そして、そのフォルダ内に「PDF」という名前でフォルダを作ります。

その後、先ほどまでのExcelファイルを、名前をつけて保存で保存します(ファイル名はなんでもいいです)。ファイルの種類はExcel マクロ有効ブック (*.xlsm)を選択してください。

次の工程でつくるマクロは、PDFフォルダにファイルを出力するマクロだよ~

マクロを作成する

次に、マクロを作っていきます。・・・といっても、下記の手順どおりにやればOKです。

開発タブ → Visual Basic

開発タブが表示されない人は下記の記事を参照~(外部サイト)

Word/Excel:開発タブを表示するには - 教えて!HELPDESK「開発」タブはデフォルトでは非表示となっています。表示させるには次の操作を行います。office-qa.com 右クリック → 挿入 → 標準モジュール エディタに、下記のコードをそのまま貼り付けてください Option Explicit Sub 一括PDF出力()     ' 変数宣言     Dim ws帳票 As Worksheet: Set ws帳票 = Worksheets("帳票")     Dim ws台帳 As Worksheet: Set ws台帳 = Worksheets("台帳")     Dim 台帳最終行 As Long: 台帳最終行 = ws台帳.Range("A1").CurrentRegion.Rows.Count     Dim i As Long          ' 一括出力対象データ数の確認     Dim 出力データ数 As Long: 出力データ数 = 0     For i = 2 To 台帳最終行         If ws台帳.Cells(i, 2).Value = "Y" Then             出力データ数 = 出力データ数 + 1         End If     Next          ' ユーザーに処理続行の確認     If 出力データ数 > 0 Then         Dim rc         rc = MsgBox(出力データ数 & "件のデータをPDF出力します。よろしいですか?", vbYesNo)         If rc = vbNo Then             MsgBox ("処理を中断しました。")             Exit Sub         End If     Else         ' 対象データなしの場合は処理終了         MsgBox ("出力対象のデータがありません。")         Exit Sub     End If          ' PDF出力処理     Dim 管理番号 As Long     For i = 2 To 台帳最終行         If ws台帳.Cells(i, 2).Value = "Y" Then             管理番号 = ws台帳.Cells(i, 1).Value             ws帳票.Cells(2, 1).Value = 管理番号             ws帳票.ExportAsFixedFormat _                    Type:=xlTypePDF, _                    Filename:=ThisWorkbook.Path & "\PDF\" & 管理番号 & ".pdf"         End If     Next          ' 完了メッセージの表示     MsgBox (ThisWorkbook.Path & "\PDF" & " にPDFファイルを出力しました。") End Sub

一括出力ボタンをつくる

最後に、一括出力用のボタンを追加します。これも、下図のとおり作業すればOKです。

開発 → 挿入 → ボタン ボタンを配置したい場所をクリックすると「マクロの登録」画面が表示されるので「一括PDF出力」を選ぶ ボタンが挿入される ボタンを右クリック → テキストの編集 PDF一括出力 というラベルにしました

これでボタンが追加できました。あとは、最初の見本動画のとおり、使ってみるだけです。

解説は以上です~。最後まで見て頂いてありがとうございました~!

📎📎📎📎📎📎📎📎📎📎