印刷ページ設定で余白無しをPageSetupを使ってVBAで設定する方法

余白設定VBA

エクセルで作成して印刷する時には、1枚にA4用紙にまとめて印刷したいので余白をなくして印刷したいと思ったことはありませんか?

エクセルVBAのPageSetupを使って記述すれば、毎回手動ではなく自動的に余白無しを設定してから印刷できるようになります。

ページの余白を設定する

余白の設定は、エクセルのワークシートから「ファイル」➡「印刷」➡「ページ設定」➡「余白」の順に進むと設定できますが、VBAを使ってエクセルを管理しているのでついでに設定しておいて損は無いですよ。

いつものようにユーザーフォームに配置したコマンドボタンに余白無し「0」の設定を書いています。

ポイント単位で余白を上下左右0設定

ポイント単位で余白指定するVBA

Private Sub CommandButton1_Click()
With ActiveSheet.PageSetup
.TopMargin = (0)
.BottomMargin = (0)
.LeftMargin =(0)
.RightMargin = (0)
End With
End Sub

解説
  1. コマンドボタン1がクリックされたら
  2. 現在表示中のシートのページ設定をする
  3. 上の余白を0ptにする
  4. 下の余白を0ptにする
  5. 左の余白を0ptにする
  6. 右の余白を0ptにする
  7. Withステートメント終了
  8. マクロ記録終了

センチ単位で余白を上下左右0設定

余白無しの0ならば、ポイント単位だろうがセンチ単位だろうが変わりませんが、余白を少しでも必要ならばポイント単位よりもセンチ単位の方が分かりやすいと思います。

下記のようにApplication.CentimetersToPointsを付け加えればセンチ単位になります。

センチ単位で余白設定するVBA

Private Sub CommandButton1_Click()
With ActiveSheet.PageSetup
.LeftMargin = Application.CentimetersToPoints(0)
.RightMargin = Application.CentimetersToPoints(0)
.TopMargin = Application.CentimetersToPoints(0)
.BottomMargin = Application.CentimetersToPoints(0)
End With
End Sub

ここでは余白無しをご紹介しましたが、0ではなく0.5など余白の幅は数値で調整できます。