Excel上級者

【コードコピペOK!】ExcelVBAでPDFを印刷する方法

しんたろ。

「PDFの印刷がめんどくさい」
「ExcelVBAで簡単に印刷できるコードを知りたい」

事務作業や経理作業をしていると、PDFファイルを印刷しなければならないことがよくあります。月末に大量の請求書を印刷するケースや、社員の分も印刷するケースはよくあります。請求書の枚数が多い場合、手作業で行うのは非常に手間がかかります。

この記事では、VBAでPDFファイルを印刷する方法を解説します

ただ印刷する方法だけでなく、部分一致でファイルを一括印刷する方法や、フォルダ内のファイルを一括印刷する方法など、実践で使えるサンプルもありますので、ぜひ最後までご覧ください!

期間限定でChatGPT✖️Googleスプレットシートのコンテンツ配布中!

LINEでExcelを気軽に学べる

しんたろ。
しんたろ。
Excel歴10年以上のプロ
Profile
【実績】
□2016年
海外拠点において、Excelでの業務改善による納期遵守率50%→100%達成。
□2018年
自動化を促進させ、自身の残業時間を年間240時間削減成功。
□2023年
├ブログとTwitter開始
├Excel無料相談会→即日満席
└ChatGPT×Googleスプレットシート配布で1週間で35万インプ達成

仕事ができなくて毎日上司に叱責されていた私がExcelを学んだら評価され残業を大幅に削減!現在は職場改善チームに所属し、PythonやRPAなどのツールで会社全体の改善をしています。仕事の依頼はTwitterのDMまで!
プロフィールを読む

はじめに

Microsoft Visual Basic for Applications (VBA)は、Microsoft Officeに含まれる強力なプログラミング言語です。

多くの用途があり、プログラムのカスタマイズやタスクの自動化において、非常に高い柔軟性を発揮します。

VBAを使ったPDFファイルの印刷は、特に大量のデータを扱う場合に、ありふれた作業を自動化するためにこの言語をどのように使うことができるかを示す好例です。

>>ExcelVBAの詳しい解説をみる

VBAを使用してPDFファイルを印刷するメリット

PDFファイルを印刷するためにVBAを使用すると、次のような多くの利点があります。

メリット
  1. 大量の文書を印刷するプロセスを合理化する。
    VBAを使用すると、反復作業を簡単に自動化し、時間を節約することができる。
  2. 特定のPDFファイルに対する印刷設定や設定を自動化する。
    VBAを使用すると、印刷設定をカスタマイズできるので、文書を印刷する必要があるたびに調整する必要がない。
  3. 文書固有の設定を自動化する。
    たとえば、請求書ごとに異なるページ数を印刷する必要がある場合、VBAを使用してこのタスクを自動化することができる。

VBAを使用してPDFファイルを印刷する方法

VBAを使ったPDFファイルの印刷は、かなり簡単です。

Excel VBAを使用してPDFを印刷する方法は、次のように複数あるので詳しく解説していきます。

Adobe Acrobatを使用する方法

Adobe Acrobatがインストールされていることを確認

Adobe Acrobatのオブジェクトライブラリを参照設定する

実際のコード

Dim AcroApp As Acrobat.CAcroApp
Dim AcroAVDoc As Acrobat.CAcroAVDoc

Set AcroApp = CreateObject("AcroExch.App")
Set AcroAVDoc = CreateObject("AcroExch.AVDoc")

' PDFを開く
AcroAVDoc.Open "C:\Sample.pdf", "Acrobat"

' 印刷する
AcroAVDoc.PrintOut False, False, 1, False, "", False

' PDFを閉じる
AcroAVDoc.Close True

Set AcroAVDoc = Nothing
Set AcroApp = Nothing

Acrobat DCのAPIを使用する方法

Acrobat DCがインストールされていることを確認

Acrobat DCのAPIを参照設定する

実際のコード

Dim app As Acrobat.AcroApp
Dim doc As Acrobat.AcroAVDoc

Set app = CreateObject("AcroExch.App")
Set doc = CreateObject("AcroExch.AVDoc")

' PDFを開く
doc.Open "C:\Sample.pdf", "Acrobat"

' 印刷する
app.PrintDoc doc.GetPDDoc, False, False, True

' PDFを閉じる
doc.Close True

Set doc = Nothing
Set app = Nothing

システムプリンタを使用する方法

実際のコード

Sub PrintPDF()

    ' プリンタを設定する
    With ActiveSheet.PageSetup
        .PrintArea = ""
        .FitToPagesWide = 1
        .FitToPagesTall = 1
        .Zoom = False
        .CenterHorizontally = True
        .CenterVertically = True
        .Orientation = xlPortrait
        .Draft = False

        .PaperSize = xlPaperA4
        .FirstPageNumber = xlAutomatic
        .Order = xlDownThenOver
        .BlackAndWhite = False
        .PrintErrors = xlPrintErrorsDisplayed
        .OddAndEvenPagesHeaderFooter = False
        .DifferentFirstPageHeaderFooter = False
        .ScaleWithDocHeaderFooter = True
        .AlignMarginsHeaderFooter = True
        .EvenPage.LeftHeader.Text = ""
        .EvenPage.CenterHeader.Text = ""
        .EvenPage.RightHeader.Text = ""
        .EvenPage.LeftFooter.Text = ""
        .EvenPage.CenterFooter.Text = ""

        .EvenPage.RightFooter.Text = ""
        .FirstPage.LeftHeader.Text = ""
        .FirstPage.CenterHeader.Text = ""
        .FirstPage.RightHeader.Text = ""
        .FirstPage.LeftFooter.Text = ""
        .FirstPage.CenterFooter.Text = ""
        .FirstPage.RightFooter.Text = ""

    End With

    ' PDFを印刷する
    ActiveSheet.PrintOut Copies:=1, ActivePrinter:="Adobe PDF", 
   PrintToFile:=False
End Sub

上記のコードでは、ActiveSheet.PrintOut メソッドを使用して、システムプリンタとして「Adobe PDF」を指定してPDFを印刷しています。

注意点として、この方法では、印刷する前に印刷設定を行う必要があります。また、「Adobe PDF」がシステムプリンタとして正しく設定されていることを確認する必要があります!

まとめ

ExcelVBAでPDFファイルを印刷する方法を解説しました。

コードはコピーしてお使いくださいね!

全会社員を残業地獄から救いたい
本ブログの有効活用方法
1
Concept
初心者に分かりやすい解説

しんたろ。ブログでは「少しでも残業を減らしたい」「時間効率を上げて新しいことにチャレンジしたい」「仕事で評価を上げて年収を上げたい」そんなあなたに向けて私が学んできたノウハウを最短ルートで教えるExcelブログとなっています。

覚えておくべき関数や操作方法を徹底解説!

2
Concept
Excelを最短で
習得する方法を解説

「独学で習得できる気がしない」そんな方に効率よく習得できる記事を書きました。

本や動画を紹介していますが、やはり一番効率の良い習得方法は、講師にわからないことを質問できる『オンラインスクール』です。

3
Concept
Excelが大活躍!
会社員でも不就労所得を作れる。

「会社の収入だけでは不安」そう思い出会った副業がブログでした。書いた記事たちが、あなたが寝ている間もずっと働いてくれます。『不就労』の完成です。

記事を書く際の様々な分析にExcelがとても役立ちます。私は2023年末までにブログで脱サラする予定です!

あなたもブログで脱サラしましょう!

ABOUT ME
しんたろ。
しんたろ。
Excel歴10年以上のプロ
【実績】
□2016年
海外拠点において、Excelでの業務改善による納期遵守率50%→100%達成。
□2018年
自動化を促進させ、自身の残業時間を年間240時間削減成功。
□2023年
├ブログとTwitter開始
├Excel無料相談会→即日満席
└ChatGPT×Googleスプレットシート配布で1週間で35万インプ達成

仕事ができなくて毎日上司に叱責されていた私がExcelを学んだら評価され残業を大幅に削減!現在は職場改善チームに所属し、PythonやRPAなどのツールで会社全体の改善をしています。仕事の依頼はTwitterのDMまで!
記事URLをコピーしました