| Home |
3、表を印刷します。
ヘッダー、フッター、縦位置、横位置などのバランスを調整します。

2で完成した表を印刷の対象にします。
※テストとして、セルG1:K8を選択し、印刷した結果をマクロの自動記録でプロシージャを記録してみます。





1

2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32

33
Sub Macro1()

Worksheets(1).Range("G1:K8").Select
With ActiveSheet.PageSetup
 .LeftHeader = ""
 .CenterHeader = ""
 .RightHeader = ""
 .LeftFooter = ""
 .CenterFooter = ""
 .RightFooter = ""
 .LeftMargin = Application.InchesToPoints(0.787)
 .RightMargin = Application.InchesToPoints(0.787)
 .TopMargin = Application.InchesToPoints(0.984)
 .BottomMargin = Application.InchesToPoints(0.984)
 .HeaderMargin = Application.InchesToPoints(0.512)
 .FooterMargin = Application.InchesToPoints(0.512)
 .PrintHeadings = False
 .PrintGridlines = False
 .PrintComments = xlPrintNoComments
 .PrintQuality = 600 '印刷品質
 .CenterHorizontally = False
 .CenterVertically = False
 .Orientation = xlPortrait
 .Draft = False
 .PaperSize = xlPaperA4 '用紙サイズ
 .FirstPageNumber = xlAutomatic 'ページナンバーの初期値。デフォルトは"1"
 .Order = xlDownThenOver
 .BlackAndWhite = False '白黒印刷の設定
 .Zoom = False
 .FitToPagesWide = 1
 .FitToPagesTall = 1
End With
Selection.PrintOut Copies:=1, Preview:=True, Collate:=True

End Sub



※Sub Macro1()の印刷イメージ
拡大 ■これをVBAから操作すると、次のプロシージャでも同じ結果になります。
─────────────────────────────────
Sub myprint()
  Worksheets(1).Range("G1").CurrentRegion.PrintPreview
End Sub
─────────────────────────────────
たった1行のステートメントで済んでしまいますが、印刷の向きやマージン設定はできませんので、上の「Macro1」の構文を利用して細かいレイアウトを調整していきます。
※「Macro1」も「myprint」も"PrintPreview"の状態なので、実際の印刷はプレビュー画面上部[ 印刷 ]ボタンを押して実行します。
プレビューなしで直接印刷する場合は、「Macro1」の場合No.32のコード Preview:=True → Preview:=False に変更。
「myprint」の場合は、PrintPreview → PrintOut にすればOKです。


■ヘッダーとフッターの設定
「Macro1」の4〜6のヘッダーと7〜9のフッターを設定します。

.LeftHeader = "売上表"
.CenterHeader = "&U&:フルーツカンパニー" &U=下線付き
.RightHeader = "作成日:&D" &D=現在の日付
.LeftFooter = "経理部"
.CenterFooter = "&P/&N" &P=ページ番号 &N=総ページ数
.RightFooter = "byエクセルの積木"

↓印刷結果
拡大 ※ヘッダー・フッターに使用できる書式コード一覧は一番下段を参照



■上下左右マージンの設定
「Macro1」の10〜13のマージンを設定します。
デフォルトはインチ(1インチ=約2.54cm)設定。

.LeftMargin = Application.InchesToPoints(0.787)≒2センチ・左マージン
.RightMargin = Application.InchesToPoints(0.787)≒2センチ・右マージン
.TopMargin = Application.InchesToPoints(0.984)≒2.5センチ・上マージン
.BottomMargin = Application.InchesToPoints(0.984)≒2.5センチ・下マージン

※↓センチ単位にするには、Application.CentimetersToPoints(数値) の形式にします。
(例)
.LeftMargin = Application.CentimetersToPoints(3)=3センチ
.RightMargin = Application.CentimetersToPoints(2)=2センチ
.TopMargin = Application.CentimetersToPoints(5)=5センチ
.BottomMargin = Application.CentimetersToPoints(2)=2センチ

↓印刷結果
拡大

▲Top


■ヘッダーとフッターのマージン設定
「Macro1」の14〜15のマージンを設定します。
デフォルトはインチ設定。


(例)センチ単位に変更しています。
.HeaderMargin = Application.CentimetersToPoints(1.3)=1.3センチ・ヘッダーマージン
.FooterMargin = Application.CentimetersToPoints(2)=2センチ・フッターマージン

↓印刷結果
拡大



■PrintHeadings と PrintGridlines の設定

「Macro1」の16と17を設定します。
デフォルトは、False

(例)セルF1:L10を印刷範囲とした場合

.PrintHeadings = True  ←行・列番号が印刷されます。
.PrintGridlines = True  ←グリッド線が印刷されます(極細線)。


■コメントの印刷設定
「Macro1」の18のコメントを設定します。
デフォルトは、xlPrintNoComments

使用できる定数は、次に示す XlPrintLocation クラスのいずれかです。
xlPrintInPlace  ←コメントを表示した場合、見たままに印刷します。
xlPrintNoComments  ←コメントの有無、表示・非表示にかかわらず、コメントの印刷はしません。
xlPrintSheetEnd  ←コメントがある場合、ワークシートの最後に、文末脚注としてコメントを印刷します。

(例)xlPrintInPlace の場合


(例)xlPrintSheetEnd の場合
セルG7とJ8に設定されたコメントが2ページ目に印刷された。




■ページの中央に印刷する場合
「Macro1」の20と21を設定します。
デフォルトは、False
.CenterHorizontally = True  ←印刷位置を水平方向の中央に設定
.CenterVertically = True  ←印刷位置を垂直方向の中央に設定

(注)上下左右の余白の大きさが均等でないと、正しく印刷されません。

(例)上下左右のマージンを3センチずつ取った場合。
.LeftMargin = Application.CentimetersToPoints(3)
.RightMargin = Application.CentimetersToPoints(3)
.TopMargin = Application.CentimetersToPoints(3)
.BottomMargin = Application.CentimetersToPoints(3)

↓印刷結果
拡大



■印刷の向きを設定する場合
「Macro1」の22を設定します。
デフォルトは、xlPortrait(縦向き)
.Orientation = xlPortrait  ←印刷方向を縦に設定
.Orientation = xlLandscape  ←印刷方向を横に設定

(例)印刷方向を横に設定した場合。
.Orientation = xlLandscape

↓印刷結果
拡大



■ドラフト(簡易)印刷をする場合
「Macro1」の23を設定します。
デフォルトは、False

(例)ドラフト印刷をする場合
.Draft = True

↓印刷結果 罫線、背景色がクリアされる※ヘッダーフッターはそのまま。




■大きい表を複数ページに分けて印刷する場合
「Macro1」の26を設定します。
デフォルトは、xlDownThenOver

.Order = xlDownThenOver  (左上→左下→右上→右下)
.Order = xlOverThenDown  (左上→右上→左下→右下)

(例)表が4分割になった場合。


▲Top


■印刷倍率を設定する場合
「Macro1」の28を設定します。
デフォルトは、False(100%)

※Falseの場合、FitToPagesWideプロパティか、FitToPagesTallプロパティのどちらかの設定に従って、印刷倍率が決まります。
設定範囲:10〜400の間

(例)印刷倍率150%の場合
.Zoom = 150

↓印刷結果
拡大



■印刷範囲を指定ページで収める場合
「Macro1」の29・30を設定します。
デフォルトは、縦横とも1ページに収める設定。
(注)ZoomプロパティがFalseに設定されていないと有効になりません。

(例:1)FitToPagesWide = 2、FitToPagesTall = 1 の場合
  ※セルA1:T100の範囲(100行20列)にダミーデータを入力してテスト。
.Zoom = False
.FitToPagesWide = 2
.FitToPagesTall = 1

↓印刷結果


(例:2)FitToPagesWide = 1、FitToPagesTall = 1 の場合
  ※セルA1:T100の範囲(100行20列)にダミーデータを入力してテスト。
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1

↓印刷結果



■印刷枚数と部単位の印刷設定
「Macro1」の32を設定します。
デフォルトは、Copies:=1(印刷枚数=1)、Preview:=True(印刷プレビュー有り)、Collate:=True(部単位印刷有り)の設定。

(例)印刷枚数2枚、プレビュー有り、部単位印刷有り、で設定してみます。(セルG1:K8とG12:K19に表がある場合※下図参照)

Sub Macro1()
Worksheets(1).Range("G1:K8,G12:K19").Select  '←部単位印刷の場合は、選択範囲に注意。
  With ActiveSheet.PageSetup
    Selection.PrintOut Copies:=2, Preview:=True, Collate:=True
  End With
End Sub

↓印刷対象


↓印刷結果

各2枚ずつ、合計4枚がプリントされます。

■一般的な印刷設定
上の「Macro1」の自動記録のように、全てのプロパティを設定する必要はありません。
必要な分だけ状況にあわせて使い分けて下さい。

(例) 拡大
Sub myprint()
Worksheets(1).Range("G1:K8").Select '印刷範囲の設定。
With ActiveSheet.PageSetup
  .RightHeader = "作成日:&D" '右上ヘッダー
  .CenterFooter = "&P/&N" '下真ん中フッター
  .LeftMargin = Application.CentimetersToPoints(2) 'レフトマージン
  .TopMargin = Application.CentimetersToPoints(2) 'トップマージン
  .Zoom = False '印刷倍率なし
  .FitToPagesWide = 1 '縦を1ページに収める
  .FitToPagesTall = 1 '横を1ページに収める
End With
  Selection.PrintOut copies:=1, Preview:=True, Collate:=True
 '印刷枚数:1、プレビュー:有り、部単位印刷:有り
End Sub



※ヘッダー・フッターに使用できる書式コード
分類 書式コード 設定される内容
書式設定 &nn 指定したフォントサイズで印刷します。
「nn」には、ポイント数を表す2桁の数値を指定します。
&B 文字列を太字で印刷します。
&I 文字列を斜体で印刷します。
&L 文字列を左詰めに印刷します。
&C 文字列を中央揃えに印刷します。
&R 文字列を右詰めに印刷します。
&X 上付き文字を印刷します。
&Y 下付き文字を印刷します。
&U 文字列を下線付きで印刷します。
&E 文字列を二重線付きで印刷します。
&S 文字列を取り消し線付きで印刷します。
情報取得 &D 現在の日付を印刷します。
&T 現在の時刻を印刷します。
&F ファイルの名前を印刷します。
&A シート見出しを印刷します。
&P ページ番号を印刷します。
&N ファイルの全てのページ数を印刷します。
&P+数値 ページ番号に指定した[数値]を加えた値を印刷します。
&P-数値 ページ番号から指定した[数値]を引いた値を印刷します。
フォント変更 & "フォント名" 指定したフォントで文字を印刷します。
その他 &G 画像イメージを表示します。(Excel2002/2003のみ)
&& アンパサンド(&)を1つ印刷します。
▲Top