【ExcelVBA入門】高度な印刷設定をする方法とは?高速化対応も解説!

皆さんは、VBAで印刷する方法を知っていますか?

Excelのデータを印刷するケースはよくあるので、使い方を覚えておくと便利です!

そこで今回は、

・VBAで印刷する方法

といった基礎的なことから、

・VBAで高度な印刷設定をする方法

・印刷を高速化するテクニック

といった応用的な方法まで、徹底的に解説します!

基礎的な印刷・プレビュー方法

はじめに、VBAで印刷・プレビューする方法について簡単に解説します。

印刷・プレビューする方法は次のとおりです。

使い方:

シート全体を指定する場合は「Worksheets(シート名)」を指定し、範囲指定する場合は「Range(セル範囲)」のようにセル範囲を指定します。

このように、簡単に印刷・プレビューをすることができます。

VBAの基礎的な印刷方法については以下で詳しく解説しているので、気になる方は見てみてくださいね!


【VBA入門】印刷範囲の設定方法・セル選択で直接指定する方法とは
更新日 : 2018年9月11日

詳細な印刷設定方法

次に、詳細な印刷設定方法について解説します。

余白の設定方法

まずは、「余白の設定方法」について解説します。

印刷の余白は、Marginプロパティを使って設定します。

上下左右・ヘッダー・フッダーでそれぞれ以下のように設定することができます。

No設定値意味
1LeftMargin左余白の設定
2RightMargin右余白の設定
3TopMargin上余白の設定
4BottomMargin下余白の設定
5HeaderMarginヘッダー余白の設定
6FooterMarginフッター余白の設定

サンプルコード:

上下左右にそれぞれ1cmヘッダー・フッダーにそれぞれ0.5cm余白を設定しています。

このように、簡単に余白を設定することができます。

CentimetersToPoints」はcmで数値を指定するための関数なので、合わせて覚えておくと便利です!

用紙の向きの設定方法

次に、「用紙の向きの設定方法」について解説します。

用紙の向きは、Orientationプロパティを使って設定します。

指定方法は次のとおり。


・縦向き:xlPortrait
・横向き:xlLandscape

これだけだとわかりづらいので、簡単なサンプルを用意しました。

サンプルコード:

縦向きで印刷されるよう設定しているサンプルです。

このように、簡単に用紙の向きを指定することができます。

ヘッダー・フッダーの設定方法

次に、「ヘッダー・フッダーの設定方法」について解説します。

ヘッダー・フッダーは、左・中央・右の表示位置ごとに、それぞれ次のように指定して値を設定します。

Noプロパティ意味
1LeftHeaderヘッダー左
2CenterHeaderヘッダー中央
3RightHeaderヘッダー右
4LeftFooterフッダー左
5CenterFooterフッダー中央
6RightFooterフッダー右

ヘッダー・フッダーはシート名、ページ番号、日付などをよく使うので、合わせて以下オプションも覚えておくと便利です!

No設定値変換された値
1&D日付
2&Pページ番号
3&N総ページ数
4&Aシート名

これだけだとわかりづらいので、簡単なサンプルを用意しました。

サンプルコード:

ヘッダー中央にシート名、ヘッダー右に日付、フッダー中央に(ページ/総ページ数)を表示するためのサンプルです。

このように、簡単にヘッダー・フッダーを設定することができます。

合わせて覚えると便利な印刷処理高速化方法

ここまで詳細な印刷設定方法について解説してきましたが、Excelとプリンターを接続したまま印刷設定をすると、1つずつ設定するため時間がかかってしまします。

印刷設定直前にプリンターとの接続を切り、全ての設定の準備ができた後にプリンターを再接続することで、無駄な待ち時間なく高速で印刷設定をすることができます。

ApplicationオブジェクトPrintCommunicationプロパティで、以下のようにプリンターの接続を設定することができます。


・True :接続
・False:接続を切る

こちらもサンプルコードを用意しました。

サンプルコード:

以下の流れで処理を書いているため、印刷設定が多くても無駄な時間を待たずに処理を動かすことができます。


設定前にプリンタとExcelの接続を止める

VBAで設定用のコードを実行

最後にプリンタとExcelを接続

印刷設定とあわせて覚えておくと便利です!

まとめ

今回は、VBAで印刷設定をする方法について解説しました。

Excelを使っていると、データを印刷したいケースはよくあります。

使い方も簡単なので、ぜひ使ってみてくださいね!

LINEで送る
Pocket

最短でエンジニアを目指すなら侍エンジニア塾

cta_under_bnr

侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

無料体験レッスンの詳細はこちら

書いた人

Sanshiro Wakizaka

Sanshiro Wakizaka

フリーランスエンジニア兼ライターのワキザカ サンシロウです。
ExcelVBAの自動化ツール開発、WEB開発をメインにエンジニア業務をこなしつつ、サムライエンジニアにてライター業務をしております。

プログラミングをこれからやってみたい方に向けて、ためになる記事を全力で書いていきますので宜しくお願い致します!

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説