教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA 印刷】ページの余白を設定する方法について教えて!

f:id:m_kbou:20210510173136p:plain

VBAを使用してページ印刷時の余白設定のやり方について紹介します。余白はページ設定画面の余白タブ内以下赤枠で囲んだ部分の内容となります。今回は余白サイズをセンチメートルで指定する内容で説明させてもらいます。(※ページ設定画面は[ファイル]⇒[印刷]⇒[ページ設定]で開く事ができます。)

f:id:m_kbou:20210510175152p:plain

 

 

構文

記述方法は以下の通りとなります。

(1)上余白の設定をする

Sheets("[シート名]").PageSetup.TopMargin =[余白サイズ]

[説明]:

ページの上余白を設定するには
 「Sheets("[シート名]").PageSetup.TopMargin =[余白サイズ]」
と記述します。
[シート名]には印刷するシート名を記述し、「”」(ダブルクォーテーション)で囲みます。PageSetup.TopMarginは印刷時の上余白を取得する記述となります。[余白サイズ]には余白のサイズを記述します。内容を纏めると、「印刷時には[余白サイズ]で指定した上余白を空けて下さい。」との意味になります。

[記述例]:

Sheets("Sheet1").PageSetup.TopMargin = Application.CentimetersToPoints(5)

(2)下余白の設定をする

Sheets("[シート名]").PageSetup.BottomMargin =[余白サイズ]

[説明]:

ページの下余白を設定するには
 「Sheets("[シート名]").PageSetup.BottomMargin =[余白サイズ]」
と記述します。
[シート名]には印刷するシート名を記述し、「”」(ダブルクォーテーション)で囲みます。PageSetup.BottomMarginは印刷時の下余白を取得する記述となります。[余白サイズ]には余白のサイズを記述します。内容を纏めると、「印刷時には[余白サイズ]で指定した下余白を空けて下さい。」との意味になります。

[記述例]:

Sheets("Sheet1").PageSetup.BottomMargin = Application.CentimetersToPoints(5)

(3)左余白の設定をする

Sheets("[シート名]").PageSetup.LeftMargin =[余白サイズ]

[説明]:

ページの左余白を設定するには
 「Sheets("[シート名]").PageSetup.LeftMargin =[余白サイズ]」
と記述します。
[シート名]には印刷するシート名を記述し、「”」(ダブルクォーテーション)で囲みます。PageSetup.LeftMarginは印刷時の左余白を取得する記述となります。[余白サイズ]には余白のサイズを記述します。内容を纏めると、「印刷時には[余白サイズ]で指定した左余白を空けて下さい。」との意味になります。

[記述例]:

Sheets("Sheet1").PageSetup.LeftMargin = Application.CentimetersToPoints(5)

(4)右余白の設定をする

Sheets("[シート名]").PageSetup.RightMargin =[余白サイズ]

[説明]:

ページの右余白を設定するには
 「Sheets("[シート名]").PageSetup.RightMargin =[余白サイズ]」
と記述します。
[シート名]には印刷するシート名を記述し、「”」(ダブルクォーテーション)で囲みます。PageSetup.RightMarginは印刷時の右余白を取得する記述となります。[余白サイズ]には余白のサイズを記述します。内容を纏めると、「印刷時には[余白サイズ]で指定した右余白を空けて下さい。」との意味になります

[記述例]:

Sheets("Sheet1").PageSetup.RightMargin = Application.CentimetersToPoints(5)

(5)ヘッダー余白の設定をする

Sheets("[シート名]").PageSetup.HeaderMargin =[余白サイズ]

[説明]:

ページのヘッダー余白を設定するには
 「Sheets("[シート名]").PageSetup.HeaderMargin =[余白サイズ]」
と記述します。
[シート名]には印刷するシート名を記述し、「”」(ダブルクォーテーション)で囲みます。PageSetup.HeaderMarginは印刷時のヘッダー余白を取得する記述となります。[余白サイズ]には余白のサイズを記述します。内容を纏めると、「印刷時には[余白サイズ]で指定したヘッダー余白を空けて下さい。」との意味になります。

[記述例]:

Sheets("Sheet1").PageSetup.HeaderMargin = Application.CentimetersToPoints(3)

(6)フッター余白の設定をする

Sheets("[シート名]").PageSetup.FooterMargin =[余白サイズ]

[説明]:

ページのフッター余白を設定するには
 「Sheets("[シート名]").PageSetup.FooterMargin =[余白サイズ]」
と記述します。
[シート名]には印刷するシート名を記述し、「”」(ダブルクォーテーション)で囲みます。PageSetup.FooterMarginは印刷時のフッター余白を取得する記述となります。[余白サイズ]には余白のサイズを記述します。内容を纏めると、「印刷時には[余白サイズ]で指定したフッター余白を空けて下さい。」との意味になります。

[記述例]:

Sheets("Sheet1").PageSetup.FooterMargin = Application.CentimetersToPoints(3)

 

使い方

使い方について具体的に説明します。

上余白を設定する

上余白を設定する方法について説明します。

[プログラミング例]:

Sub 上余白の設定()
  Sheets("Sheet1").PageSetup.TopMargin = Application.CentimetersToPoints(5)
  MsgBox "上余白を5cmに設定しました。", 64, "メッセージ"
End Sub

内容は、「Sheet1シートの印刷時の上余白を5cmで設定し、MsgBoxで”上余白を5cmに設定しました。”を表示して下さい。」との意味になります。(※Application.CentimetersToPoints(5)は、「5cm」とのサイズ指定になります。)

f:id:m_kbou:20210510202531p:plain

※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。

[実行例]:

(事前確認)

ページ設定画面の各余白状況を確認します。現在は上余白が1.9になっています。

f:id:m_kbou:20210510202553p:plain

①Sheet1シートのA1セル~G8セルにデータが入力されており、<上余白の設定>ボタンには上記のプログラミング例のプログラムが登録されています。この<上余白の設定>ボタンをクリックします。(※ボタンの作り方やボタンにプログラムを割り当てるにはこちらを参考にして下さい。)

f:id:m_kbou:20210510202720p:plain

②MsgBoxで「上余白を5cmに設定しました。」が表示されます。

f:id:m_kbou:20210510202807p:plain

③再度ページ設定画面の余白タブ内上余白を確認すると、「5」に設定されている事が確認できます。

f:id:m_kbou:20210510202925p:plain

上余白を設定する方法についての説明は以上です。

 

下余白を設定する

下余白を設定する方法について説明します。

[プログラミング例]:

Sub 下余白の設定()
  Sheets("Sheet1").PageSetup.BottomMargin = Application.CentimetersToPoints(5)
  MsgBox "下余白を5cmに設定しました。", 64, "メッセージ"
End Sub

内容は、「Sheet1シートの印刷時の下余白を5cmで設定し、MsgBoxで”下余白を5cmに設定しました。”を表示して下さい。」との意味になります。(※Application.CentimetersToPoints(5)は、「5cm」とのサイズ指定になります。)

f:id:m_kbou:20210510203413p:plain

※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。

[実行例]:

(事前確認)

ページ設定画面の各余白状況を確認します。現在は下余白が1.9になっています。

f:id:m_kbou:20210510202553p:plain

①Sheet1シートのA1セル~G8セルにデータが入力されており、<下余白の設定>ボタンには上記のプログラミング例のプログラムが登録されています。この<下余白の設定>ボタンをクリックします。(※ボタンの作り方やボタンにプログラムを割り当てるにはこちらを参考にして下さい。)

f:id:m_kbou:20210510203433p:plain

②MsgBoxで「下余白を5cmに設定しました。」が表示されます。

f:id:m_kbou:20210510203509p:plain

③再度ページ設定画面の余白タブ内下余白を確認すると、「5」に設定されている事が確認できます。

f:id:m_kbou:20210510203544p:plain

下余白を設定する方法についての説明は以上です。

 

左余白を設定する

左余白を設定する方法について説明します。

[プログラミング例]:

Sub 左余白の設定()
  Sheets("Sheet1").PageSetup.LeftMargin = Application.CentimetersToPoints(5)
  MsgBox "左余白を5cmに設定しました。", 64, "メッセージ"
End Sub

内容は、「Sheet1シートの印刷時の左余白を5cmで設定し、MsgBoxで”左余白を5cmに設定しました。”を表示して下さい。」との意味になります。(※Application.CentimetersToPoints(5)は、「5cm」とのサイズ指定になります。)

f:id:m_kbou:20210510203751p:plain

※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。

[実行例]:

(事前確認)

ページ設定画面の各余白状況を確認します。現在は左余白が1.8になっています。

f:id:m_kbou:20210510202553p:plain

①Sheet1シートのA1セル~G8セルにデータが入力されており、<左余白の設定>ボタンには上記のプログラミング例のプログラムが登録されています。この<左余白の設定>ボタンをクリックします。(※ボタンの作り方やボタンにプログラムを割り当てるにはこちらを参考にして下さい。)

f:id:m_kbou:20210510203841p:plain

②MsgBoxで「左余白を5cmに設定しました。」が表示されます。

f:id:m_kbou:20210510203906p:plain

③再度ページ設定画面の余白タブ内左余白を確認すると、「5」に設定されている事が確認できます。

f:id:m_kbou:20210510203929p:plain

左余白を設定する方法についての説明は以上です。

 

右余白を設定する

右余白を設定する方法について説明します。

[プログラミング例]:

Sub 右余白の設定()
  Sheets("Sheet1").PageSetup.RightMargin = Application.CentimetersToPoints(5)
  MsgBox "右余白を5cmに設定しました。", 64, "メッセージ"
End Sub

内容は、「Sheet1シートの印刷時の右余白を5cmで設定し、MsgBoxで”右余白を5cmに設定しました。”を表示して下さい。」との意味になります。(※Application.CentimetersToPoints(5)は、「5cm」とのサイズ指定になります。)

f:id:m_kbou:20210510204053p:plain

※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。

[実行例]:

(事前確認)

ページ設定画面の各余白状況を確認します。現在は右余白が1.8になっています。

f:id:m_kbou:20210510202553p:plain

①Sheet1シートのA1セル~G8セルにデータが入力されており、<右余白の設定>ボタンには上記のプログラミング例のプログラムが登録されています。この<右余白の設定>ボタンをクリックします。(※ボタンの作り方やボタンにプログラムを割り当てるにはこちらを参考にして下さい。)

f:id:m_kbou:20210510204134p:plain

②MsgBoxで「右余白を5cmに設定しました。」が表示されます。

f:id:m_kbou:20210510204156p:plain

③再度ページ設定画面の余白タブ内右余白を確認すると、「5」に設定されている事が確認できます。

f:id:m_kbou:20210510204221p:plain

右余白を設定する方法についての説明は以上です。

 

ヘッダー余白を設定する

ヘッダー余白を設定する方法について説明します。

[プログラミング例]:

Sub ヘッダー余白の設定()
  Sheets("Sheet1").PageSetup.HeaderMargin = Application.CentimetersToPoints(3)
  MsgBox "ヘッダー余白を5cmに設定しました。", 64, "メッセージ"
End Sub

内容は、「Sheet1シートの印刷時のヘッダー余白を3cmで設定し、MsgBoxで”ヘッダー余白を3cmに設定しました。”を表示して下さい。」との意味になります。(※Application.CentimetersToPoints(3)は、「3cm」とのサイズ指定になります。)

f:id:m_kbou:20210510204459p:plain

※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。

[実行例]:

(事前確認)

ページ設定画面の各余白状況を確認します。現在はヘッダー余白が0.8になっています。

f:id:m_kbou:20210510202553p:plain

①Sheet1シートのA1セル~G8セルにデータが入力されており、<ヘッダー余白の設定>ボタンには上記のプログラミング例のプログラムが登録されています。この<ヘッダー余白の設定>ボタンをクリックします。(※ボタンの作り方やボタンにプログラムを割り当てるにはこちらを参考にして下さい。)

f:id:m_kbou:20210510204518p:plain

②MsgBoxで「ヘッダー余白を3cmに設定しました。」が表示されます。

f:id:m_kbou:20210510204536p:plain

③再度ページ設定画面の余白タブ内ヘッダー余白を確認すると、「3」に設定されている事が確認できます。

f:id:m_kbou:20210510204551p:plain

ヘッダー余白を設定する方法についての説明は以上です。

 

フッター余白を設定する

フッター余白を設定する方法について説明します。

[プログラミング例]:

Sub フッター余白の設定()
  Sheets("Sheet1").PageSetup.FooterMargin = Application.CentimetersToPoints(3)
  MsgBox "フッター余白を5cmに設定しました。", 64, "メッセージ"
End Sub

内容は、「Sheet1シートの印刷時のフッター余白を3cmで設定し、MsgBoxで”フッター余白を3cmに設定しました。”を表示して下さい。」との意味になります。(※Application.CentimetersToPoints(3)は、「3cm」とのサイズ指定になります。)

f:id:m_kbou:20210510205006p:plain

※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。

[実行例]:

(事前確認)

ページ設定画面の各余白状況を確認します。現在はフッター余白が0.8になっています。

f:id:m_kbou:20210510202553p:plain

①Sheet1シートのA1セル~G8セルにデータが入力されており、<フッター余白の設定>ボタンには上記のプログラミング例のプログラムが登録されています。この<フッター余白の設定>ボタンをクリックします。(※ボタンの作り方やボタンにプログラムを割り当てるにはこちらを参考にして下さい。)

f:id:m_kbou:20210510205054p:plain

②MsgBoxで「フッター余白を3cmに設定しました。」が表示されます。

f:id:m_kbou:20210510205134p:plain

③再度ページ設定画面の余白タブ内フッター余白を確認すると、「3」に設定されている事が確認できます。

f:id:m_kbou:20210510205111p:plain

フッター余白を設定する方法についての説明は以上です。

 

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

 

おわりに

今回はページの余白を設定する方法について説明しました。類似の内容として印刷位置をページ中央に設定する方法があります。是非こちらも参考にして下さい。