excel

【Excel】エクセルで複数ファイルを一括でPDFに変換する方法(フォルダ内一括・シート一括も)

当サイトでは記事内に広告を含みます

【Excel】エクセルで複数ファイルを一括でPDFに変換する方法(フォルダ内一括・シート一括も)

エクセルで作成した複数のファイルを、まとめてPDFに変換したいと思ったことはありませんか?1つずつ手動で変換するのは時間がかかり、ファイル数が多くなるほど作業負担が増してしまいます。

本記事では、エクセルで複数ファイルを一括でPDFに変換する方法を詳しく解説します。フォルダ内のファイルをまとめて変換する方法や、シートを一括でPDF化する手順、さらにVBAを使った自動化まで、幅広く紹介します。

「毎月の報告書を一気にPDFにまとめたい」「複数のシートを1つのPDFにしたい」という方にも役立つ内容です。ぜひ最後までお読みください。

 

 

エクセルで複数ファイルを一括PDFに変換するならVBAが最速

それではまず、エクセルで複数ファイルを一括でPDFに変換する方法の全体像について解説していきます。

エクセルには標準機能として「名前を付けて保存」からPDF出力ができますが、複数ファイルをまとめて変換する機能は標準では搭載されていません。そのため、複数ファイルを効率よく一括変換するには、VBA(Visual Basic for Applications)を使う方法が最も確実です。

VBAとはエクセルに内蔵されているプログラミング機能のことで、繰り返し作業を自動化するのに非常に適しています。コードを一度設定してしまえば、次回以降はボタン1つで変換が完了するため、業務効率が大幅に向上するでしょう。

一括PDF変換の主な方法まとめ

・VBAマクロを使ってフォルダ内のxlsxファイルを自動変換する

・複数シートをまとめて1つのPDFに出力する

・特定のシートだけを選択してPDF化する

まず、VBAを使った基本的な一括PDF変換の流れを確認しましょう。以下のイメージ図では、VBAエディター(VBE)の画面を模擬しています。

📗
Microsoft Visual Basic for Applications – Book1.xlsm

ファイル(F)編集(E)表示(V)挿入(I)実行(R)ツール(T)ヘルプ(H)

▶ 実行
⏸ 中断
⏹ リセット
|
🔧 デバッグ

VBAProject (Book1)
📁 標準モジュール
Module1

Sub ConvertAllToPDF()
    ‘ フォルダ内のExcelファイルを一括でPDFに変換するマクロ
    Dim folderPath As String
    Dim fileName As String
    Dim wb As Workbook
    folderPath = “C:\Users\User\Documents\Reports\”
    fileName = Dir(folderPath & “*.xlsx”)
    Do While fileName <> “”
        Set wb = Workbooks.Open(folderPath & fileName)
        wb.ExportAsFixedFormat Type:=xlTypePDF, _
            Filename:=folderPath & Replace(fileName, “.xlsx”, “.pdf”)
        wb.Close SaveChanges:=False
        fileName = Dir()
    Loop
    MsgBox “PDF変換が完了しました!”
End Sub

このコードを実行すると、指定したフォルダ内にあるすべてのxlsxファイルが自動的にPDFに変換されます。変換後のPDFは同じフォルダ内に保存されるため、管理もしやすいでしょう。

 

 

フォルダ内のエクセルファイルを一括でPDFに変換する手順

続いては、フォルダ内のエクセルファイルを一括でPDFに変換する具体的な手順を確認していきます。

VBAエディターを開いてコードを入力する

まず、VBAエディターを開く方法から確認しましょう。エクセルを開いた状態で、「Alt」キー+「F11」キーを同時に押すとVBAエディターが起動します。「開発」タブが表示されている場合は、「Visual Basic」ボタンをクリックしても同様に開けます。

VBAエディターが開いたら、メニューの「挿入」→「標準モジュール」をクリックし、新しいモジュールを追加します。その後、先ほどのコード(ConvertAllToPDF)を貼り付けてください。

コードの中の「folderPath」部分を、変換したいファイルが入っているフォルダのパスに書き換えるのが重要なポイントです。フォルダパスの末尾には必ず「\」を付けてください。

folderPath = “C:\Users\User\Documents\Reports\”

↑ この部分を実際のフォルダパスに変更する

マクロを実行してPDFを一括出力する

コードの入力が完了したら、「F5」キーを押すか、ツールバーの「▶ 実行」ボタンをクリックしてマクロを実行します。処理が完了すると「PDF変換が完了しました!」というメッセージが表示され、指定フォルダ内にPDFファイルが生成されているはずです。

なお、変換対象のExcelファイルが他のアプリで開かれていると、エラーが発生する場合があります。実行前に対象ファイルをすべて閉じておくのが安全です。

また、マクロを使ったファイルを保存するときは、通常の「.xlsx」形式ではなく「.xlsm(マクロ有効ブック)」形式で保存する必要があります。保存時にファイルの種類を変更し忘れないようにしましょう。

フォルダパスの取得方法と注意点

正確なフォルダパスを取得するには、エクスプローラーでフォルダを開き、アドレスバーをクリックするとフルパスが表示されます。そのパスをコピーして「folderPath」に貼り付けましょう。

パスに日本語が含まれていても基本的には動作しますが、特殊文字やスペースが含まれると正常に動作しないことがあります。できるだけ英数字のフォルダ名を使うことをおすすめします。

確認ポイント 内容
フォルダパスの末尾 「\」で終わるように記述する
対象ファイルの状態 変換前にすべて閉じておく
保存形式 マクロ使用時は「.xlsm」で保存
ファイル名の文字 日本語・スペース・特殊文字は避ける

 

 

エクセルの複数シートを一括でPDFに変換する方法

続いては、1つのエクセルファイルの中にある複数シートを、まとめてPDFに変換する方法を確認していきます。

シートをすべて選択して一括PDF出力する

複数のシートを選択した状態でPDF出力すると、選択したシートが1つのPDFにまとまります。手順は以下のとおりです。

まず、最初のシートのタブをクリックし、次に「Shift」キーを押しながら最後のシートのタブをクリックすると、その間にあるすべてのシートが選択された状態になります。この状態を「シートのグループ化」と呼びます。

📗
Microsoft Excel – 月次報告書.xlsx [グループ]
🔲 ─ ✕

複数シートをShiftクリックで選択(グループ化)した状態

※ 複数シートを選択中(グループ化)のため、タイトルバーに [グループ] と表示されています

📄 1月
📄 2月
📄 3月
📄 集計

シートを選択した状態で「ファイル」→「エクスポート」→「PDF/XPSドキュメントの作成」をクリックし、「発行」ボタンを押すと、選択したシートが1つのPDFファイルにまとめて出力されます。

VBAで特定シートのみPDF変換する方法

特定のシートだけをPDFに変換したい場合は、VBAで出力するシートを指定することで対応できます。以下のコードを参考にしてください。

Sub ExportSpecificSheets()

    Dim ws As Worksheet

    Dim savePath As String

    savePath = ThisWorkbook.Path & “\”

    For Each ws In ThisWorkbook.Worksheets

        If ws.Name Like “月次*” Then

            ws.ExportAsFixedFormat Type:=xlTypePDF, _

                Filename:=savePath & ws.Name & “.pdf”

        End If

    Next ws

    MsgBox “完了しました!”

End Sub

このコードでは、シート名が「月次」で始まるシートだけをPDFに変換する仕組みになっています。「Like “月次*”」の部分を変更すれば、対象シートの条件を自由に変更できます。

シートごとに個別PDFとして保存する方法

シートをまとめて1つのPDFにするのではなく、シートごとに個別のPDFファイルとして保存したい場合も、VBAで対応可能です。上記のコードのように「ws.ExportAsFixedFormat」を各シートに対して実行すれば、シートごとに別々のPDFが生成されます。

ファイル名には「ws.Name」(シート名)を使うと、どのシートのPDFか一目でわかりやすくなります。大量のシートがある場合でも、一度のマクロ実行で完了するため非常に便利でしょう。

 

 

PDF変換時の印刷設定・ページ設定を整える方法

続いては、PDF変換時に欠かせない印刷設定・ページ設定の整え方を確認していきます。

用紙サイズと印刷範囲を正しく設定する

PDFに変換したとき、表が途中で切れてしまったり、余白が大きすぎたりする問題はよく起こります。これを防ぐには、事前に印刷設定を整えておくことが重要です。

「ページレイアウト」タブから「サイズ」でA4やA3などの用紙サイズを指定し、「余白」で上下左右の余白を調整しましょう。表全体が1ページに収まらない場合は「印刷範囲」を手動で指定するか、「拡大縮小印刷」→「1ページに収める」を選ぶのが有効です。

PDF出力前に確認すべき印刷設定

・用紙サイズ(A4・A3など目的に合わせて設定)

・余白(上下左右を必要最低限に抑える)

・印刷範囲(データがある範囲だけを指定)

・拡大縮小(「1ページに収める」で表が切れるのを防ぐ)

・ページの向き(縦・横を表の形に合わせる)

ヘッダー・フッターをPDFに含める方法

業務で使う報告書などでは、ページ番号や会社名をヘッダー・フッターに入れてPDF出力したいケースがあります。「ページレイアウト」タブの「ページ設定」→「ヘッダー/フッター」タブから設定できます。

「ページ番号」「総ページ数」「日付」「ファイル名」などをクリックで挿入できるため、難しい設定は必要ありません。設定後にプレビューで確認してからPDF変換すると、意図どおりの出力になります。

複数ページにまたがる表のタイトル行を固定する

複数ページにわたる表をPDFに変換するとき、2ページ目以降に列の見出しが表示されないと読みにくくなります。この場合は「ページレイアウト」タブ→「印刷タイトル」→「行のタイトル」に見出し行を指定することで、すべてのページに見出しが印刷されます。

この設定はPDF出力にも反映されるため、長い表を含む文書を変換するときには必ず設定しておきましょう。

設定項目 場所 効果
用紙サイズ ページレイアウト→サイズ 出力サイズを統一できる
印刷範囲 ページレイアウト→印刷範囲 不要な空白ページを省ける
拡大縮小 ページレイアウト→拡大縮小 表が1ページに収まるようになる
印刷タイトル ページレイアウト→印刷タイトル 各ページに見出し行が表示される
ヘッダー/フッター ページ設定→ヘッダー/フッター ページ番号・日付などを追加できる

 

 

まとめ

本記事では、エクセルで複数ファイルを一括でPDFに変換する方法について解説しました。

エクセル標準機能では複数ファイルの一括変換はできませんが、VBAを使えば指定フォルダ内のすべてのファイルを自動でPDF化できます。また、複数シートをまとめて1つのPDFにする方法や、シートごとに個別PDF保存する方法も活用すれば、さまざまな業務シーンに対応できるでしょう。

PDF変換の前には、用紙サイズや印刷範囲、印刷タイトルといった印刷設定を整えておくことが、きれいな仕上がりのポイントです。一度VBAのコードを設定してしまえば、その後の変換作業は大幅に短縮できます。

ぜひ本記事の手順を参考に、日々の業務効率化にお役立てください。