【VBA】ページ余白設定をセンチメートル単位で指定する

これで楽に!?VBA活用

こんにちは、Ryoです。
普段Excelで印刷対象の余白設定を行う場合、ページ設定から上下左右の余白をポイント指定することで行いますが、VBAではCentimetersToPointsメソッドを利用することでcm(センチメートル)単位での指定を行うことができますので、今回はこの内容について書いていきたいと思います。

スポンサーリンク

1.サンプル概要

一例として簡易的な表を適当に作成していますが、この表を印刷する際に上余白/下余白/左余白を3cm、右余白を2cmと設定して印刷プレビューを実行します。

印刷プレビューを実行すると設定した余白が反映された状態になっています。この状態では実寸がわかりませんが、印刷して確認してみると設定通り上下左余白は3cm、右余白は2cmとなっていましたのでセンチメートル単位での指定はできています。

2.サンプルコード

Sub sample1()
'ページの余白をセンチメートル単位で設定

 'Sheet1に対する処理を実行
 With Worksheets("Sheet1")
 
  '「上余白」を 3cm 設定
  .PageSetup.TopMargin _
   = Application.CentimetersToPoints(3)
  
  '「下余白」を 3cm 設定
  .PageSetup.BottomMargin _
   = Application.CentimetersToPoints(3)
  
  '「左余白」を 3cm 設定
  .PageSetup.LeftMargin _
   = Application.CentimetersToPoints(3)
  
  '「右余白」を 2cm 設定
  .PageSetup.RightMargin _
   = Application.CentimetersToPoints(2)
  
  '印刷プレビューを実行
  '(参考)印刷する場合は .PrintOut Copies:=1
  .PrintPreview
  
 End With
 
End Sub

このようにページ余白をセンチメートル単位で設定するにはCentimetersToPointsメソッドを利用します。

構文:オブジェクト.CentimetersToPoints num

CentimetersToPointsメソッドはポイントをセンチメートルに変換するメソッドで、以前に投稿したセルサイズをセンチメートル指定する内容と同様です。

【VBA】セルサイズをcm(センチメートル)指定する
こんにちは、Ryoです。 Excelのセルサイズはポイントなのでラベルシートなど規定寸法サイズの表を作りたい場合にイメージしにくいことがあると思いますので、そのポイントをcm(センチメートル)に変換する方法について書いてみようと思います。...

このメソッドで指定した数値がセンチメートル単位になりますので、サンプルコードで指定している(3)は3cm、(2)は2cmとなっています。

上余白の指定はTopMarginプロパティ、下余白はBottomMarginプロパティ、左余白はLeftMarginプロパティ、右余白はRightMarginプロパティをそれぞれ使用します。

後は印刷プレビューを表示して終了していますが、印刷を実行する場合は .PrintOut Copies:=1とすれば1部印刷を実行できますのでご参考までに。

3.まとめ

私の場合はVBAで処理したデータを指定様式に落とし込み、印刷を実行するような処理をすることが多々ありますので、余白設定も本記事のような形でcm指定するケースが多いです。



使用メソッドのCentimetersToPointsはセルサイズのみではなく、このように余白設定にも利用できるという点をしっておくと、印刷処理の幅も広がるので良いかと思います。

以上、ページ余白設定をセンチメートル単位で指定する方法についてでした!今回の記事が何かの参考になれば幸いです。

Ryo

タイトルとURLをコピーしました