|
こんにちわ。suikaです。
excel-2007の自動記録機能を使い、シートの印刷範囲設定を行うマクロを
作成しましたが、不要な部分まで印刷されてしまい、困っています。
ページレイアウトのタブにあります、印刷タイトルのタイトル行(R)⇒$1:$1
とし、全てのページの先頭に、列ラベルを表示させます。
更にA4サイズ横向きで、後は、改ページプレビューで印刷範囲の設定を行い
ました。
そうすると、データの行数が全部で625行ある為、PrintArea = "$A$1:$L$625"
となり、このシートでは、問題はありません。
ですが、困ったことに、別のシート(データの行数が全部で約400行ある)で、
この印刷範囲設定マクロを使用しますと、4ページ〜9ページの先頭行に、列
ラベルが表示されてしまいます。
このまま、印刷をかけますと、OA紙が無駄になるので、手動で印刷ページの
指定を行っています。
データの行数に関係なく、全てのページに列ラベルを表示し、A4サイズ横向き
で印刷するには、どのようにコードを記述すればよいか、どなたか分かる方が
いらっしゃいましたら、ご教授をお願いいたします。
コードの最後に記載した印刷設定のコードを抜粋し、下記に掲載します。
1.ページレイアウトのタブにあります、印刷タイトルのタイトル行(R):$1:$1
とし、全てのページの先頭に列ラベルの追加を設定しました。
↓
印刷設定(列ラベル追加)を行う。
With ActiveSheet.PageSetup
.PrintTitleRows = "$1:$1"
.PrintTitleColumns = ""
End With
2.次に、印刷設定(A4サイズ:横向き)を行う。
印刷設定(A4サイズ:横向き)を行う。
ActiveSheet.PageSetup.PrintArea = ""
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
.LeftMargin = Application.InchesToPoints(0.196850393700787)
.RightMargin = Application.InchesToPoints(0.196850393700787)
.TopMargin = Application.InchesToPoints(0.984251968503937)
.BottomMargin = Application.InchesToPoints(0.196850393700787)
.HeaderMargin = Application.InchesToPoints(0.511811023622047)
.FooterMargin = Application.InchesToPoints(0.511811023622047)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.CenterHorizontally = False
.CenterVertically = False
.Orientation = xlLandscape
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = 100
.PrintErrors = xlPrintErrorsDisplayed
.OddAndEvenPagesHeaderFooter = False
.DifferentFirstPageHeaderFooter = False
.ScaleWithDocHeaderFooter = True
.AlignMarginsHeaderFooter = True
.EvenPage.LeftHeader.Text = ""
.EvenPage.CenterHeader.Text = ""
.EvenPage.RightHeader.Text = ""
.EvenPage.LeftFooter.Text = ""
.EvenPage.CenterFooter.Text = ""
.EvenPage.RightFooter.Text = ""
.FirstPage.LeftHeader.Text = ""
.FirstPage.CenterHeader.Text = ""
.FirstPage.RightHeader.Text = ""
.FirstPage.LeftFooter.Text = ""
.FirstPage.CenterFooter.Text = ""
.FirstPage.RightFooter.Text = ""
End With
ActiveWindow.View = xlPageBreakPreview
ActiveSheet.PageSetup.PrintArea = "$A$1:$L$625"
ActiveSheet.VPageBreaks(1).DragOff Direction:=xlToRight, RegionIndex:=1
ActiveWindow.View = xlNormalView
Range("A1").Select
MsgBox "自動編集終了! 印刷を行ってください"
End Sub
|
|