教えて!ExcelVBA!

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

ExcelVBAでページの余白を設定する方法

構文

構文は以下の通りです。

With ActiveSheet.PageSetup
    .TopMargin = Application.CentimetersToPoints(余白の上)
    .BottomMargin = Application.CentimetersToPoints(余白の下)
    .LeftMargin = Application.CentimetersToPoints(余白の左)
    .RightMargin = Application.CentimetersToPoints(余白の右)
End With

解説

ActiveSheet.PageSetupは、現在アクティブなシートのページ設定を行います。TopMargin, BottomMargin, LeftMargin, RightMarginは、それぞれ、上、下、左、右の余白を設定します。単位はポイントで指定しますが、Application.CentimetersToPointsを使うことで、センチメートル単位で指定できます。※Application.CentimetersToPointsは、センチメートルをポイントに変換します。余白のサイズをセンチメートルで指定する場合に使用します。

プログラミング例

具体的なプログラミング例を紹介します。

Sub ページの余白を設定する()
    Dim 余白の上 As Double
    Dim 余白の下 As Double
    Dim 余白の左 As Double
    Dim 余白の右 As Double
    ' 余白の値をセンチメートルで設定
    余白の上 = 2.5
    余白の下 = 2.5
    余白の左 = 2.0
    余白の右 = 2.0
    With ActiveSheet.PageSetup
        .TopMargin = Application.CentimetersToPoints(余白の上)
        .BottomMargin = Application.CentimetersToPoints(余白の下)
        .LeftMargin = Application.CentimetersToPoints(余白の左)
        .RightMargin = Application.CentimetersToPoints(余白の右)
    End With
    MsgBox "ページの余白が設定されました", vbInformation
End Sub

上記のプログラムは、アクティブなシートのページ余白を設定します。余白は上と下が2.5センチメートル、左と右が2.0センチメートルに設定されています。コードを実行すると、余白が設定され、メッセージボックスで「ページの余白が設定されました」と表示されます。

まとめ

ページの余白を設定するには、ActiveSheet.PageSetupを使用し、TopMargin、BottomMargin、LeftMargin、RightMarginで余白の大きさをポイント単位で指定します。センチメートルで設定したい場合は、Application.CentimetersToPoints メソッドを使うと便利です。余白の設定は、印刷時にページレイアウトを整えるのに重要です。