ExcelVBA 特定プリンターを指定してExcelシートやワークブックを印刷

 

ExcelVBA 特定のプリンターを指定してExcelのシートやワークブックを印刷することができます。これにより、ユーザーが手動でプリンターを選択する手間を省き、スムーズに印刷作業を行えます。使い方や注意点など、サンプルコードをもとに具体的に解説します。

 

日常業務でExcelを多用し、手動作業を減らしたいと考えている方へ
本サイト参考:Excel VBAで自動化するコードのベースを習得したい方におすすめの記事

 

Excel VBA 特定プリンター指定の利用

以下のようなシーンで利用されます。

1.特定のプリンターに直接出力する
部署ごとに異なるプリンターを使う場合や、大量印刷を効率化したい

2.印刷ジョブを自動化
定期的に決まった内容を印刷するシステムの構築

3.エラー防止
プリンターの選択ミスを防ぎ、作業効率を向上

使い方

1.プリンター名を取得する
Application.ActivePrinter プロパティを使用して現在のプリンターを確認します。

2.プリンターを設定する
Application.ActivePrinter にプリンター名を設定します。

3.印刷を実行する
PrintOut メソッドを使って指定した内容を印刷します。

ポイント

1.プリンター名の正確さ
設定するプリンター名はシステムで認識されている名前でなければなりません。

2.ネットワークプリンター
ネットワーク経由のプリンターの場合、接続が有効であることを確認してください。

3.印刷環境依存
プリンター名がPC環境によって異なる場合があるため、他のPCで動作させる際には確認が必要です。

4.エラーハンドリング
プリンターがオフラインの場合や設定ミスの場合にエラー処理を実装することが重要です。

 

Excel VBA 特定プリンター指定のサンプルコード

基本的な文法やVBAの実践的な応用までを網羅的に学習できる方法は、ExcelVBAエキスパート資格の取得を目指すこと。学習を通して、より効率的に、着実に基礎を身につけることが可能です。資格取得すれば、スキルの証明にもなり、職場での評価アップにも繋がるため、勉強を進めるモチベーションにもなります。
本サイト参考:マクロ知識がないから「何から学べば良いのかわからない」という人におすすめの記事

現在のプリンター名を取得

Option Explicit

Sub GetCurrentPrinter()
    MsgBox "現在のプリンター: " & Application.ActivePrinter
End Sub

特定のプリンターを設定して印刷

Option Explicit

Sub SetPrinterAndPrint()
    Dim targetPrinter As String
    Dim currentPrinter As String

    ' 現在のプリンターを保存
    currentPrinter = Application.ActivePrinter

    ' 設定したいプリンター名
    targetPrinter = "Microsoft Print to PDF on Ne01:"

    ' プリンターを設定
    On Error Resume Next
    Application.ActivePrinter = targetPrinter
    If Err.Number <> 0 Then
        MsgBox "指定したプリンターが見つかりません。"
        Exit Sub
    End If
    On Error GoTo 0

    ' 印刷実行(例: アクティブシートを印刷)
    ActiveSheet.PrintOut

    ' 元のプリンターに戻す
    Application.ActivePrinter = currentPrinter
End Sub

プリンター名を確認するには、Application.ActivePrinter を取得して、正確な名前を調べておくとよいです。ネットワークプリンターでは、プリンター名に接続ポート(例: on Ne02:)が含まれる場合があります。プリンターが見つからない場合にエラーメッセージを表示して処理を中断する仕組みを追加しましょう。

これを使えば、作業の効率化と印刷エラーの削減が可能です。

Excel VBAで自動化するコードのベースを習得したい方におすすめ!

VBAエキスパート資格は、日常業務でExcelを多用し、手動作業を減らしたいと考えている方には価値あるものです。

ExcelVBAエキスパートベーシック
仕事の効率をあげるためにExcelVBAを利用する人が対象の問題集です。


ExcelVBAエキスパートスタンダード

ExcelVBAの開発を仕事にする人が対象の問題集です。

 

Excel  VBA エキスパート資格について知りたい方は、下記「Excel VBAスキルアップを目指すなら知っておきたいVBAエキスパート」をご確認ください。