Excel VBA 用紙に印刷する(アクティブシートや指定したシート)



VBAで用紙に印刷する

エクセルのVBAによりシートを印刷したい場合のコードは

ActiveSheet.PrintOut  'アクティブシートを印刷する

のようになります。



VBAで印刷する経緯

ただ用紙を印刷するだけなら、普通に印刷ボタンを押すか、「Ctrl + P」のショートカットキーで充分です。

しかしながら、
「ある特定の処理をした上で印刷をしたい」といった条件のある印刷の場合は、VBAで印刷を開始させたいかもしれません。

そういったときに、「PrintOutメソッド」を使って印刷に関するコードを書きます。



応用例

指定のシートを印刷

Worksheets("シート名").PrintOut  '指定のシートを印刷

先ほどはアクティブシートを印刷しましたが、こちらはシートを指定して印刷します。

どのシートがアクティブであっても、指定したシートが印刷されます。

存在しないシート名を指定するとエラーになるので注意です。


用紙サイズを設定する

ActiveSheet.PageSetup.PaperSize = xlPaperA4  ' 用紙サイズを設定

アクティブシートの用紙サイズをA4にしています。
A3のときは上記のA4をA3にします。


用紙の向きを設定

ActiveSheet.PageSetup.Orientation = xlLandscape '用紙の向きを横にする

アクティブシートの用紙の向きを横にします。

縦にする場合は、「xlPortrait」です。



おわりに

エクセルのVBAを使うと、ちょっと数字や単語を変えただけで、シートだけなのかシート全部印刷するのか、1枚印刷するのか100枚印刷するのかといったことを変えることができます。

そのため、
印刷関連のVBAは書き方を間違うとインクや紙を大量に無駄にしてしまうことがあります。

こういった誤作動を防ぐためには、まずは少ない枚数や仮のシートでテスト動作をすることがおすすめです。