3、表を印刷します。 ヘッダー、フッター、縦位置、横位置などのバランスを調整します。
2で完成した表を印刷の対象にします。
※テストとして、セルG1:K8を選択し、印刷した結果をマクロの自動記録でプロシージャを記録してみます。
※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センチ ↓印刷結果
■ヘッダーとフッターのマージン設定 「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分割になった場合。
■印刷倍率を設定する場合 「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 ※ヘッダー・フッターに使用できる書式コード
|