最初に、マクロ記録を利用して、マクロの記録を開始します。
1.選択したセル範囲を印刷範囲に設定後、「ページ設定」ダイアログボックスで、印刷「拡大縮小印刷」で「次のページに合わせて印刷を選択します。
2.次に印刷プレビューを表示します
3.最後に印刷範囲設定を解除します。
4.マクロの記録を終了します。
| 1.マクロの記録で、記録されたコード | 2.不要なコードを削除すると | ||
| Sub 印刷範囲の印刷() ' ' 印刷範囲の印刷 Macro ' マクロ記録日 : 2003/11/10 ユーザー名 : yip ' ' With ActiveSheet.PageSetup .PrintTitleRows = "" .PrintTitleColumns = "" End With ActiveSheet.PageSetup.PrintArea = "$A$1:$Q$16" 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 = 300 .CenterHorizontally = False .CenterVertically = False .Orientation = xlPortrait .Draft = False .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = False .Zoom = False .FitToPagesWide = 1 .FitToPagesTall = 1 PrintErrors = xlPrintErrorsDisplayed End With ActiveWindow.SelectedSheets.PrintPreview ActiveSheet.PageSetup.PrintArea = "" Range("A18").Select End Sub |
’マクロ名 ’コメント 「シート」タブ 「ヘッダー・フッター」タブ 「余白」タブ 「シート」タブ 「余白」タブ 「ページ」タブ 「シート」タブ 「ページ」タブ 「シート」タブ 「ページ」タブ 「シート」タブ |
Sub 印刷範囲の印刷() ActiveSheet.PageSetup.PrintArea = "$A$1:$Q$16" With ActiveSheet.PageSetup PrintAreaプロパティは、印刷対象となるセル範囲を指定します。 .Zoom = False .FitToPagesWide = 1 End With ActiveWindow.SelectedSheets.PrintPreview シートを印刷プレビュー表示する。 ActiveSheet.PageSetup.PrintArea = "" 印刷範囲をクリアーする。「””」 Range("A18").Select End Sub |
|
| 3.汎用的に利用出来るようにコードを手直ししたコード(印刷範囲の設定箇所を汎用的に使用できるように、書き換えます。) | |||
| Sub 印刷範囲の印刷() ActiveSheet.PageSetup.PrintArea = Selection.Address With ActiveSheet.PageSetup .Zoom = False .FitToPagesWide = 1 End With ActiveWindow.SelectedSheets.PrintPreview ActiveSheet.PageSetup.PrintArea = "" Range("A18").Select End Sub |
変更箇所は、一箇所だけです。 Selection.Addressを指定することで可変のセル範囲に対応することが出来るようになります。 指定範囲が1ページに収まるように設定しています。 Zoom→「拡大・縮小」オプション FitToPagesWide=横方向 FitToPagesTall=縦方向 印刷範囲をクリアする。 選択を解除する。"A18"は、印刷範囲以外ならどこでもかまいません。 |
||
●「Address」プロパティで、参照範囲を文字列で取得する。
Addressは、セルの参照範囲を文字列で、取得する時などに利用する、値の参照のみが可能ななプロパティです。
Addressプロパティには、5つの引数がありますが、いずれも省略可能です。
セル.Address(行絶対参照、列絶対参照、参照形式、外部参照、開始点)
※1 ActiveWindow.SelectedSheets.PrintPreview・・・・アクティブシートの中で選択されているシート全てをさします。
Activesheet.PrintPreview・・・・・・・・・・・・・・・・・・・にすると選択されているシートを指します。
直接印刷する場合は、PrintPreviewの代わりに「PrintOut」メソッドを使用します。
※2 「sheet1」シートを印刷プレビュー表示して印刷するには
Worksheets("sheet1").PrintOut Preview:=Trueとなります。
上記の印刷範囲のマクロで使用されている、Withステートメントを使用すると、記述を省略することが出来ます。
| Withステートメントを使わない場合 | Withステートメントを使えば、下記のように記述を省略できます。 |
| ActiveSheet.PageSetup.Zoom = False ActiveSheet.PageSetup.FitToPagesWide = 1 |
With ActiveSheet.PageSetup .Zoom = False .FitToPagesWide = 1 End With |
Withステートメントは、
「With」で始まり「End With」で終了します。
水平方向又は、垂直方向だけに改ページを挿入するマクロ
| Sub 水平改ページ挿入 ActiveSheet.HPageBreaks.Add _ Before:=ActiveCell End Sub |
Sub 垂直改ページ挿入 ActiveSheet.VPageBreaks.Add _ Before:=ActiveCell End Sub |
| HPageBreaks又は、VPageBreaksは、印刷範囲内でシートに挿入されている水平及び垂直の改ページを扱うことの出来るコレクションです。 Addメソッドを使うことで、新しい水平方向の改ページ又は、垂直方向の改ページを追加することが出来ます。 |
|