Excel のグラフはそのままだと印刷時に
「小さすぎて読めない」「余白が不自然」「位置がズレる」
といった問題が発生しがちです。
VBA を使えば、印刷に最適化されたグラフの配置・サイズ・余白調整 を
完全に自動化できます。
目次
1. 印刷用にグラフを拡大・配置する基本操作
まずは、印刷向けにグラフを見やすくするための
位置・サイズの設定 を扱います。
▼ グラフの位置とサイズを変更するコード
Sub FormatChartForPrint()
Dim ws As Worksheet
Dim chartObj As ChartObject
Set ws = Sheets("Sheet1")
Set chartObj = ws.ChartObjects("売上グラフ") '←グラフ名を指定
With chartObj
'位置(mm単位)
.Left = 20 '左余白
.Top = 40 '上余白
'サイズ(mm単位)
.Width = 450 '幅
.Height = 250 '高さ
End With
End Sub
▼ ポイント
- Left / Top:配置位置を調整
用紙の左上からどの位置に置くかを決める。 - Width / Height:グラフサイズを明確に指定
印刷時の見やすさが大きく変わる。
mm ではなくポイント単位で動く点に注意
(1ポイント ≒ 0.35mm)
2. 印刷ページの余白・方向の設定
印刷(PDF化含む)用レイアウトでは
ページ設定(余白・向き・拡大/縮小) が非常に重要。
以下の設定を自動化できます。
▼ ページ余白を最適化(狭め or 標準)
With ActiveSheet.PageSetup
.LeftMargin = Application.InchesToPoints(0.5)
.RightMargin = Application.InchesToPoints(0.5)
.TopMargin = Application.InchesToPoints(0.7)
.BottomMargin = Application.InchesToPoints(0.7)
End With
余白の目安(一般的な印刷物)
- 左右:0.5 inch(12.7mm)
- 上下:0.7 inch(18mm)
グラフを大きく見せたい場合は余白を狭くすると効果的。
3. 用紙方向・サイズを指定(横向きの方がグラフ向き)
レポートの場合、横向きの方がグラフは見やすいことが多いです。
With ActiveSheet.PageSetup
.Orientation = xlLandscape '横向き
.PaperSize = xlPaperA4 'A4サイズ
End With
縦向きにしたい場合は xlPortrait。
4. グラフを印刷用に“ページ中央配置”する
Excelでは、印刷プレビューの
「中央に配置(水平/垂直)」も VBA で制御できます。
With ActiveSheet.PageSetup
.CenterHorizontally = True
.CenterVertically = False
End With
印刷時にグラフが妙に端に寄る問題を防止できます。
5. PDF化するときの自動処理(グラフ整形 → PDF出力)
レポート作成でよくあるのが
「毎回、サイズ調整 → PDF保存 するのが面倒」
というパターン。
以下のコードで 整形 + PDF出力 を一括処理できます。
Sub PrintChartPDF()
Dim ws As Worksheet
Set ws = Worksheets("Sheet1")
'グラフ整形
Dim chartObj As ChartObject
Set chartObj = ws.ChartObjects("売上グラフ")
With chartObj
.Left = 30
.Top = 40
.Width = 480
.Height = 300
End With
'ページ設定
With ws.PageSetup
.Orientation = xlLandscape
.PaperSize = xlPaperA4
.LeftMargin = Application.InchesToPoints(0.5)
.RightMargin = Application.InchesToPoints(0.5)
.TopMargin = Application.InchesToPoints(0.6)
.BottomMargin = Application.InchesToPoints(0.6)
.CenterHorizontally = True
End With
'PDF出力
ws.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=ThisWorkbook.Path & "\グラフ報告書.pdf", _
Quality:=xlQualityStandard
MsgBox "PDF出力が完了しました。"
End Sub
このマクロを使えば、
- グラフのレイアウト調整
- 余白・方向などのページ設定
- PDF保存
がワンボタンで終わります。
6. 複数グラフを自動整列・自動拡大する(応用)
「複数のグラフを等間隔・同サイズにしたい」
「報告書用に見やすく並べたい」
という場合は、以下のようにループして自動整列できます。
Sub AutoArrangeCharts()
Dim ws As Worksheet
Dim i As Long
Dim leftPos As Double: leftPos = 20
Dim topPos As Double: topPos = 30
Dim width As Double: width = 350
Dim height As Double: height = 220
Dim space As Double: space = 40
Set ws = ActiveSheet
For i = 1 To ws.ChartObjects.Count
With ws.ChartObjects(i)
.Left = leftPos
.Top = topPos
.Width = width
.Height = height
End With
'下へ並べていく
topPos = topPos + height + space
Next i
End Sub
大量のグラフをレポート用に整形する際に絶大な効果があります。
7. まとめ
印刷・PDF化を前提にグラフを整えるポイントは次の通りです。
| テーマ | 内容 |
|---|---|
| グラフサイズ調整 | Width / Height で大きく読みやすく |
| 位置(Left / Top) | 印刷位置を固定しレイアウト崩れを防ぐ |
| 余白設定 | 左右 0.5inch、上下 0.6〜0.7inch が安定 |
| 用紙方向 | グラフは横向き(xlLandscape)が見やすい |
| PDF出力 | レイアウト調整 → PDF保存を一括自動化 |
| 複数グラフ整列 | ループで等間隔・同サイズに揃える |
コメント