ExcelVBA 特定のプリンターを指定してExcelのシートやワークブックを印刷することができます。これにより、ユーザーが手動でプリンターを選択する手間を省き、スムーズに印刷作業を行えます。使い方や注意点など、サンプルコードをもとに具体的に解説します。
日常業務でExcelを多用し、手動作業を減らしたいと考えている方へ
本サイト参考:Excel VBAで自動化するコードのベースを習得したい方におすすめの記事
以下のようなシーンで利用されます。
1.特定のプリンターに直接出力する
部署ごとに異なるプリンターを使う場合や、大量印刷を効率化したい
2.印刷ジョブを自動化
定期的に決まった内容を印刷するシステムの構築
3.エラー防止
プリンターの選択ミスを防ぎ、作業効率を向上
1.プリンター名を取得する
Application.ActivePrinter プロパティを使用して現在のプリンターを確認します。
2.プリンターを設定する
Application.ActivePrinter にプリンター名を設定します。
3.印刷を実行する
PrintOut メソッドを使って指定した内容を印刷します。
1.プリンター名の正確さ
設定するプリンター名はシステムで認識されている名前でなければなりません。
2.ネットワークプリンター
ネットワーク経由のプリンターの場合、接続が有効であることを確認してください。
3.印刷環境依存
プリンター名がPC環境によって異なる場合があるため、他のPCで動作させる際には確認が必要です。
4.エラーハンドリング
プリンターがオフラインの場合や設定ミスの場合にエラー処理を実装することが重要です。
基本的な文法や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エキスパート」をご確認ください。