PR

「PrintOut」プリンター指定して自動印刷 Excel(エクセル)マクロ(VBA)

エクセルマクロ(VBA)

「毎回同じExcelファイルを印刷するのに、いちいち設定するのが面倒…」

そんな経験、ありませんか? 多くの方が、Excelの印刷作業に時間を取られています。特に複数のプリンターを使い分ける環境では、印刷設定の変更が大きな手間になっています。

しかし、実はExcelには「マクロ」という強力な機能があり、これを使えば印刷作業を大幅に効率化できます。

今回は、ボタン一つでプリンターを指定し、印刷設定を自動で変更する方法をご紹介します。この方法を使えば、毎回の面倒な設定作業から解放されます。

印刷設定済みシートの印刷

すでにページ内で印刷設定をしてあり、ただ印刷ボタンを押すだけの状態になっている場合はこちらのコードを入力するだけで印刷をすることができます。

Sub 印刷()
    
    ActiveSheet.PrintOut
    
End Sub

このマクロを実行すると、実行したときのシートをそのまま印刷することができます。

プリンターを指定して印刷

今回出力するデータが普段使っているプリンターと違うプリンターを指定したい場合、都度印刷設定を切り替えて出力し、その後また元のプリンターに設定しなおす必要があります。

これらの操作をマクロで自動的にしてしまえば、ボタン一つでプリンター切り替えのことなど考えず作業をすることができます。

変更先プリンター名を確認する

まず事前準備として変更先のプリンター名を確認します。変更したいプリンターに印刷設定を変更してから下のコマンドを実行してください。

Sub プリンター名確認()
    Debug.Print ActivePrinter
End Sub

するとイミディエイトウインドウに対象のプリンターのプリンター名が表示されます。

※イミディエイトウインドウの使い方はこちらを参照してください。イミディエイトウィンドウの表示方法 Excel(エクセル)マクロ(VBA)

ここに表示された「RICOH SP 3700 PS on Ne01:」のうち赤字の「RICOH SP 3700 PS」がプリンター名です。

「on Ne01:」の部分はポート名ですので無視してOKです。

プリンター変更コードを記載する

Sub 印刷()
    Dim Printer1 As String

    Printer1 = Application.ActivePrinter  'プリンター設定を記憶しておく
    ActiveSheet.PrintOut _
                    Copies:=1, _
                    ActivePrinter:="RICOH SP 3700 PS", _
                    Collate:=True
    Application.ActivePrinter = Printer1 'プリンター設定を初期値に戻す
    Debug.Print ActivePrinter
    
End Sub

上のコードの赤字部分に先ほどの「RICOH SP 3700 PS」を入れてください。

これでこのマクロを実行したときのみ「RICOH SP 3700 PS」から出力させることができるようになりました。

\エクセルを勉強するならこれ!/

コメント

タイトルとURLをコピーしました