「PrintOut」ボタンひとつで自動印刷 Excel(エクセル)マクロ(VBA)

ボタン一つで、プリンターを切り替えて印刷したり、印刷設定を変更することができます。今夏はその方法をご紹介いたします。

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

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

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をコピーしました