エクセルのページ設定【 VBAを使ってページ設定を自動化 】
エクセル業務でページ設定をする作業はとても重要ですが、意外とこの設定をしっかり行わずに業務を進めてしまっている人って多いですよね。
ページ設定をしっかりしないと、作った資料を印刷しようとしたときにキレイに印刷できないことがある。
・A4用紙に印刷したいのに、うまく調整できない
・印刷しようとしたら、どうしてもはみ出てしまう
・余白がバラバラな資料ができてしまう
ページ設定はエクセルで資料を作るとき、はじめにやるべき重要な作業です。この作業をVBAを使って自動化してしまえば作業効率が格段に上がり、さらにとてもキレイな資料を作ることができるようになります。
目次
PageSetup オブジェクト
VBAを使ったページ設定には必ずPageSetupオブジェクトを使用します。
基本構造
ActiveSheet.PageSetup.プロパティ=設定値
基本的な使い方は上記のようなプログラムを記載します。プロパティや設定値一覧を変更することによって、より細かいページ設定を行うことが出来るようになる。
よく使われる3つのプロパティを紹介します。
ページ設定① 「ページ」
プロパティ・設定値一覧
Orientation | 印刷の向きを指定(縦:xlPortrait , 横:xlLandscape) |
Zoom | 拡大縮小印刷(10~400の数字) |
FitToPageWide | 次のページ数に合わせて印刷(横) |
FitToPageTall | 次のページ数に合わせて印刷(縦)/td> |
PageSize | 用紙サイズ(xlpaperA4 , xlpaperA3 , …) |
FirstPageNumber | 先頭ページ番号(整数) |
サンプル
1 | Sub テスト() |
2 | '印刷横向き |
3 | ActiveSheet.PageSetup.Orientation=xlLandscape |
4 | '用紙サイズをA3用紙指定 |
5 | ActiveSheet.PageSetup.PageSize=xlPaperA3 |
6 | '拡大縮小の設定(2倍に拡大) |
7 | ActiveSheet.PageSetup.Zoom=200 |
8 | End Sub |
ページ設定② 「余白」
プロパティ・設定値一覧
TopMargin | 上余白の大きさを指定 |
HeaderMargin | ヘッダーの余白の大きさを指定 |
LeftMargin | 左余白の大きさを指定 |
RightMargin | 右余白の大きさを指定 |
BottomMargin | 下余白の大きさを指定 |
FooterMargin | フッターの余白の大きさを指定 |
CenterHorizontally | 印刷時のシートのページレイアウトの設定を、水平方向の中央寄せ(余白を除く)にします。設定値はTrueまたはFalse |
CenterVertically | 印刷時のシートのページレイアウトの設定を、垂直方向の中央寄せ(余白を除く)にします。設定値はTrueまたはFalse |
大きさ単位指定
余白の大きさは、1ポイント = 約0.0353cm = 1/72インチ です。
大きさを表す単位が3種類もあるので、しっかりと単位の宣言をする必要があります。
ポイント設定
PageSetup . プロパティ = 数字
インチ設定
PageSetup . プロパティ = Application.InchesToPoints(数字)
センチ設定
PageSetup . プロパティ = Application.CentimetersToPoints(数字)
サンプル
1 | Sub 大きさ() |
2 | '上余白が1ポイントのページ設定 |
3 | Activesheet.PageSetup.TopMargin = 1 |
4 | '右余白が1インチのページ設定 |
5 | Activesheet.PageSetup.RightMargin = Application.Application.InchesToPoints(1) |
6 | 左余白が1センチのページ設定 |
7 | Activesheet.PageSetup.LeftMargin = Application.CentimetersToPoints(1) |
ページ設定③ 「ヘッダー/フッター」
プロパティ・設定値一覧
CenterHeader | 「VBAコード」と「書式コード」の組み合わせによって、ヘッダーを真ん中に設定 |
LeftHeader | 「VBAコード」と「書式コード」の組み合わせによって、ヘッダーを左側に設定 |
RightHeader | 「VBAコード」と「書式コード」の組み合わせによって、ヘッダーを右側に設定 |
CenterFooter | 「VBAコード」と「書式コード」の組み合わせによって、フッターを真ん中に設定 |
LeftFooter | 「VBAコード」と「書式コード」の組み合わせによって、フッターを左側に設定 |
RightFooter | 「VBAコード」と「書式コード」の組み合わせによって、フッターを右側に設定 |
VBAコード一覧
&P | ページ番号 |
&N | 総ページ数 |
&D | 日付 |
&T | 時刻 |
&Z | ファイルパス |
&F | ファイル名 |
&A | シート名 |
&G | 画像イメージ |
書式コード一覧
&"フォント名" | フォント指定 |
&I | スタイル(斜体) |
&B | スタイル(太字) |
&整数 | 文字サイズ(2桁の整数を入力) |
&U | 文字にアンダーラインを引く |
&E | 文字に二重アンダーラインを引く |
&S | 文字に取り消し線を引く |
&X | 上付文字にする |
&Y | 下付き文字にする |
&L | 文字の配置を左詰めにする |
&C | 文字の配置を中央揃えにする |
&R | 文字の配置を右詰めにする |
サンプル
1 | Sub ヘッダフッタ設定 |
2 | '日付と時間を真ん中のフッターに記載 |
3 | ActiveSheet.PageSetup.CenterFooter = “日時 &D &T" |
4 | ファイル名を真ん中のヘッダーに記載 |
5 | ActiveSheet.PageSetup.CenterHeader = “&12&F" |
6 | 'フォントサイズが22で「111ページ」というテキストを左側フッターに記載 |
7 | ActiveSheet.PageSetup.LeftFooter = “&22 111ページ" |
8 | フォントの種類・サイズを指定して「55番」というテキストを右側ヘッダーに記載 |
9 | ActiveSheet.PageSetup.RightHeader = “&""Ms P明朝""&22 55番" |
注意事項① フォント名の指定
フォント名を指定するときは「"」の数と記載する位置に注意が必要です。
上記サンプルを使って説明します
上記サンプル9行目
“&""フォント名""入力事項"
・「入力事項」のフォント名を変更したい場合、「入力事項」の前に記載する
・「&」と「フォント名」の両方を"(ダブルクォーテーションマーク)で挟む
注意事項② フォントサイズの指定
フォントサイズの指定をするときは、「スペース」を記載する位置に注意が必要です。
上記のサンプルを使って説明します
上記サンプル5行目
“&22テキスト(先頭に数字なし)"
上記サンプル5行目
“&22 テキスト(先頭に数字あり)"
入力したいテキストの先頭が数字なのか、数字ではないのかでスペースが必要か必要でないかが変わる!
VBAによるページ設定でエクセル作業の効率が格段にアップする
ページ設定はキレイな書類作りには欠かせない重要な作業です。
・資料の印刷は縦にするのか、縦にするのか
・ヘッダーやフッター設定をするのか
・ファイル綴じをする資料ならば、余白設定をどのようにすればいいのか
まずは上記の3項目を踏まえてページ設定をしてみましょう。
資料の仕上がりがとてもキレイになるはずです。
ほかにもページ設定をするVBAと印刷をするVBAを組み合わせると、印刷範囲が壊されたり、ミスプリントしてしまう恐れがなくなります。
印刷をするVBAを使えば、条件によって印刷範囲や印刷枚数を変更することも可能
・条件によって印刷範囲を指定
・条件によって印刷するシートを指定
・条件によって印刷部数を指定
印刷をするVBAについて下記の記事で詳しく紹介しています。
エクセルを使った資料作りが多い、印刷することが多いという方におすすめのVBAです。
VBA初心者が効率化マクロを導入する方法
VBAなんて扱ったことないけどエクセル作業を自動化するマクロを導入したい!
このような問題を抱えながら日々のエクセル業務をこなしている方がおおくいらっしゃるのではないでしょうか。
こんな問題を解決する方法がこちら
- マクロの開発を外注に依頼する
- マクロが設定されたエクセルファイルをダウンロードする
- 参考書やネットでVBAスキルを身に付ける
VBAの勉強を始める前は上記の方法で効率化マクロを導入していました。
完成されたマクロを使ってエクセル業務を処理する
↓
作業効率が2倍以上アップ!!
↓
便利すぎて自分でもマクロを設定したいと考え始める
↓
参考書やネットの情報でVBAスキルを身に付ける
↓
マクロ開発を代行できる程のスキルを習得
VBAは
他のプログラミングに比べて参考書やネットで紹介されている情報量が多いので初心者でも導入しやすい
という特徴があります。
毎日のルーティーン作業にうんざりしている、だれでもできる単純作業に時間を費やしている、という方はあなたに合った方法でVBAを導入しちゃいましょう。
マクロの開発を外注に依頼する
マクロの開発を外注に依頼する導入方法は
VBAを全く扱えない方でもエクセル作業を自動化できる最も簡単な方法
です。
「こんなエクセル作業を自動化したい」「作った資料を自動的にPDFで保存したい」「決まった様式に写真を自動で貼り付けたい」
こんな感じで実現したい内容を依頼するだけで業務内容に合ったマクロを開発してくれます。

ガッツポーズの人
デメリットは、費用がかかることだけ。
開発内容、依頼先によってかかる費用は大きく異なります。
私が会社員の頃利用していた業者さんは1マクロあたり2万円~3万円の費用がかかりました。

疑問がある人
ちなみに、マメBlogでもエクセルマクロ開発代行サービスを承っています。
開発内容の確認、VBAコードの設定、動作確認後の調整、など全ての工程を私(マメ父ちゃん)が行っているので、
費用が安い!スピード納期!!
でやらせてもらっています。
ほとんど独学で身に付けたVBAスキルなので、内容によっては開発できないこともあるのでご了承ください。
ご相談、見積もり依頼は完全無料ですので気になる方は下記のリンクよりお問合せ下さい。
マクロが設定されたエクセルファイルをダウンロードする
VBA初心者でも『マクロが設定されたエクセルファイルをダウンロード』ですぐにエクセル作業を自動化することができます。
たとえば、
A4用紙に写真を貼り付けてコメントを入力する作業を自動化したい!という場合、
『写真を貼り付けるマクロ』が設定されたエクセルファイルをダウンロードすれば問題解決です。
実際に、『写真を貼り付けるマクロ』をダウンロードして使っている様子がこちら

ガッツポーズの人
『マクロが設定されたエクセルファイルをダウンロード』する導入方法は、
VBA初心者でもマクロを導入できる、費用が安い、
というメリットがあります。
しかし
VBAに関する情報が多く公開されているとはいえ、ネット上で想定するマクロは見つけることが難しい
というデメリットもあります。

ガッツポーズの人
個人ブログやファイルを販売できるサイト「note」や「Tips」ではいろんなマクロの情報が掲載されているので是非参考にしてみてください。
今までマメBlogで受注した効率化マクロを下記のnoteで掲載していますので併せてチェックしてみてください。
参考書やネットでVBAスキルを身に付ける
先程も紹介しましたが、
VBAは他のプログラミングに比べて参考書やネットで紹介されている情報量が多いので初心者でも導入しやすい
プログラミングです。
言い換えると、
情報量が豊富なので自分で勉強できちゃう
ということです。
私のVBAスキルはほとんど独学で身に付けたもので、
考えた処理のほとんどをVBAで表現できるレベルにまで到達した!
と思っています。
私の作ったマクロをプロのプログラマーが見れば、
お前の書くコードはインチキだ!「変数の宣言」とか「引数」を正しく使えよ!!
と感じるはずです。
でも、
私からすればどうでもいい!!!想定した内容を正しく処理できればよくないですか!?
独学であっても『写真を貼り付けるマクロ』『全てのシートをPDF出力するマクロ』『連番を振るマクロ』など、
業務内容に合ったマクロを開発できるようになれます。
独学でVBAスキルを身に付けるコツは、
エラーが発生してもいいからひたすらコードを書く、なんでもいいからエクセル作業をマクロ化してみる
です。
とは言っても、全くの知識0の方は何をすればいいかわからないですよね。
VBA知識0の初心者の方は、参考書『たった1秒で仕事が片づくExcel自動化の教科書【増強完全版】』を読んでみてください。
VBAの知識0の方でもすいすい読み進められる内容になっています。
やさしい内容にも関わらず「え!!VBAを使えばこんなことできるの!?」と感動すると思います。
実際に私はこの参考書を読んでからVBAの勉強を始めました。

ひらめく人
VBAの魅力を発見した後は、
ひたすら自動化したい処理を実現するコードを書くだけ
です。
【VBA 写真を貼る】、【VBA PDF出力】、のようにネット検索すれば知りたいコードをすぐにゲットできます。
実現したい処理に向かって、「調べる→書いてみる→エラーを改善する→調べる」を繰り返していると
自然といろんなマクロが作れるようになっているはずです。
VBAに興味が湧いてきたという方は今からVBA学習をスタートさせちゃいましょう。
ディスカッション
コメント一覧
まだ、コメントがありません