| 
    
     |  | こんにちわ。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
 
 |  |