カテゴリ
パソコン関連のお得情報

Excel VBAでMicrosoft PDFプリンタを自動で設定し、A4サイズで正しくPDF出力する方法を解説します。
手動設定によるミスをなくし、業務を効率化しましょう。
この記事では、VBAコードを使ってMicrosoft PDFプリンタを指定し、A4サイズでPDFを出力する方法を詳しく解説します。
環境設定からコードのカスタマイズまで、手順を追って説明します。
VBAでプリンタを自動設定したいけど、プリンタ名が環境によって違うのが心配…
プリンタ名を動的に取得するコードを追加することで対応できます。


Excel VBAでMicrosoftPDFプリンタを自動変換する重要性は、手動設定による人的ミスの削減と業務効率化にあります。
MicrosoftPDFプリンタを指定しない場合、Excel VBAでのPDF出力時にA4サイズが正しく反映されないことがあります。
手動でプリンタ設定を行う場合、下記のような課題が発生します。
VBAでMicrosoftPDFプリンタを自動指定することで、これらの課題を解決できます。
VBAでプリンタを指定する際、プリンタ名は環境に依存するため、注意が必要です。
A4サイズでPDFを自動変換するために、VBAコードの理解は不可欠です。
VBAでMicrosoftPDFプリンタを指定する方法は、Application.ActivePrinterプロパティを使用します。Application.ActivePrinter = "Microsoft Print to PDF"と記述することで、プリンタをMicrosoftPDFに設定できます。
プリンタ名が環境によって異なる場合、どうすれば良いの?
プリンタ名を動的に取得するコードを追加することで対応できます。
以下はMicrosoftPDFプリンタを指定するVBAコードの例です。
Private Sub Workbook_Open()
Dim PrinterName As String
Dim PrinterSuffix As Integer
Dim PrinterSet As Boolean
PrinterSuffix = 1
PrinterSet = False
Do While PrinterSuffix <= 3 And Not PrinterSet
On Error Resume Next ' エラーを無視して次に進む
PrinterName = "Microsoft Print to PDF on Ne0" & PrinterSuffix & ":"
Application.ActivePrinter = PrinterName
If Err.Number = 0 Then ' エラーが発生していない場合
PrinterSet = True ' プリンタ設定成功
Else
Err.Clear ' エラーをクリア
PrinterSuffix = PrinterSuffix + 1 ' 次のプリンタを試す
End If
Loop
On Error GoTo 0 ' エラーハンドリングをリセット
If Not PrinterSet Then
MsgBox "プリンタ設定に失敗しました。Ne01 ? Ne03 が見つかりませんでした。", vbExclamation
End If
End Sub
上記コードをExcelの This Workbook に記載してください。
VBAコードを実行するためには、VBAエディタを起動し、モジュールにコードを貼り付け、マクロを実行する必要があります。
ExcelでVBAエディタを起動するには、[開発]タブから[Visual Basic]を選択します。
[開発]タブが表示されていない場合は?
[ファイル] > [オプション] > [リボンのユーザー設定]で、[開発]にチェックを入れると表示されます。
VBAエディタで、[挿入] > [標準モジュール]を選択し、新しいモジュールを挿入します。
挿入したモジュールに、VBAコードを貼り付け、各自の環境に合わせてstrPrinterNameとstrFilePathを修正します。
VBAエディタで、[実行] > [マクロの実行]を選択し、PrintToPDFマクロを実行します。
Microsoft PDFプリンタがPCにインストールされているか確認してください。
インストールされていない場合は、Windowsの機能からインストールできます。
エラーメッセージを確認し、コードのスペルミスや構文エラーを修正してください。
特に、プリンタ名やファイルパスが環境に合わせて正しく設定されているか確認してください。
ActiveSheet.PageSetup.PaperSize = xlPaperA4の部分を、xlPaperA3やxlPaperB5など、希望する用紙サイズに変更してください。
VBAでFormat関数を使うことで、日付や時間を含んだファイル名を生成できます。
例えば、strFilePath = "C:出力フォルダoutput_" & Format(Now, "yyyymmdd_hhmmss") & ".pdf"のように記述します。
Sheets(Array("Sheet1", "Sheet2")).Selectのように、出力したいシートを配列で指定し、選択状態にしてからExportAsFixedFormatメソッドを実行します。
はい、Application.ActivePrinterに指定するプリンタ名を変更することで、他のプリンタも指定できます。
ただし、プリンタ名は環境によって異なるため、注意が必要です。
Excel VBAを使ってMicrosoft PDFプリンタを自動で設定し、A4サイズでPDF出力する方法を解説します。
VBAによる自動化で、手動設定による人的ミスを削減し、業務を効率化することが可能です。
この記事を参考に、VBAコードを自身の環境に合わせてカスタマイズし、PDF出力を自動化してみてください。