• ベストアンサー

2ページ目以降の行タイトルを3行目にしたいのですが

1ページ目は普通に印刷して、2ページ目以降の行タイトルを3行目にもって行きたいのですが、どの様にしたらいいか教えて下さい。 宜しくお願いします。 With Worksheets("Sheet1") .PageSetup.PrintTileRows = "$A3:$P3" .PageSetup.Orientation = xlLandscape .PageSetup.PrintArea = Range("A1",Range("P65536").End(xlUp)).Address .PrintPreview End With

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

(1)エクセルの仕組みとしてそのようなものはない。 (2)印刷が始まって、各ページの印刷に入る前に介入させてくれるイベントなどは無いので出来ない と思う。 ーー 基本的には無理ということ。 唯一思い付いたのが、、プログラムの手が込むが、1ページ目の終わる行をHPageBreaksででも割り出して,タイトル+1ページデータを別セル範囲にでも作成して、そのセル範囲を1ページに収まるように(普通に印刷すると2ページになってしまうから)印刷することを、最終ページまで繰返すコードを作成するほか無いでしょう。 参考 ファイルー印刷プレビューして、プレビュー画面を閉じて下記を実行してみてください(ただし質問の直接の回答ではない) Sub test01() i = 3 MsgBox "第" & i & "ページ目は" MsgBox ActiveSheet.HPageBreaks(i - 1).Location.Row & "行-" _ & ActiveSheet.HPageBreaks(i).Location.Row - 1 & "行まで" End Sub

konekos
質問者

お礼

imogasi 様 ご教授有難うございます。 返信が遅れましてすみません。参考で教えて頂いた内容でいろいろ考えながらやった 結果、無事解決出来ました。本当に有難うございます。

関連するQ&A

  • VBAにて、複数の選択範囲を1ページに印字したい

    ○開発環境○ OS:Windows7 EXCELバージョン:2010 お世話になります。 現在、EXCEL2010でVBAを使用して業務用のマクロを作成しております。 表題の通り、複数の選択範囲を1ページに印刷する必要があるのですが、 解決方法が分からず困っております。 最初は下記のような記述で印刷を試みたのですが、選択範囲ごとに改ページされてしまいます。  Worksheets("Sheet1").PageSetup.PrintArea = "A4:F10,A34:F37,A54:F57"  Worksheets("Sheet1").PrintPreview また、PrintAreaを続けて指定すればいいと紹介されているページを拝見し、下記のような記述も 試みましたが、最後の範囲だけしか印刷されませんでした。(バージョンが違うため?)  Worksheets("Sheet1").PageSetup.PrintArea = "A4:F10"  Worksheets("Sheet1").PageSetup.PrintArea = "A34:F37"  Worksheets("Sheet1").PageSetup.PrintArea = "A54:F57"  Worksheets("Sheet1").PrintPreview EXCEL2010では、複数の選択範囲を1ページに印刷することは不可能なのでしょうか? 博識な方いらっしゃいましたら、ご教授いただければと思います。 よろしくお願い致します。

  • ExcelVBAの改ページの区切り位置が変更不可

    下記のようなコードで印刷プレビューを出して印刷するようにしたいのですが、改ページの位置が思い通りに変更されません。 3ページに印刷で、A19(B19)の行から2ページ目とA37(B37)の行から3ページ目にしたいのですが、印刷プレビューを見るとA20の行から2ページ目でA38の行から3ページ目になってしまいます。 HPageBreaks.Add Before:=Range("A19")←ここを色々違うセルに変えたり別のコードにかえたりしても、まったく反映されません。何かが邪魔をしているのでしょうか? どうしたら、任意の位置で改ページできるでしょうか?お願いいたします。 Sub 印刷プレビュー設定() Dim s As Worksheet Set s = ThisWorkbook.ActiveSheet With s '列非表示 .Columns("I:I").Select Selection.EntireColumn.Hidden = True 'ワークシートを選択、印刷範囲指定する .Select ActiveSheet.PageSetup.PrintArea = "$B$1:$O$54" '余白設定 .PageSetup.TopMargin = 0 .PageSetup.BottomMargin = 0 .PageSetup.LeftMargin = 0 .PageSetup.RightMargin = 0 '水平位置の中央へ .PageSetup.CenterHorizontally = True '垂直位置の中央へ .PageSetup.CenterVertically = True '用紙を横向きに設定 .PageSetup.Orientation = xlLandscape '用紙サイズを設定 .PageSetup.PaperSize = xlPaperA4 '印刷範囲を指定ページに収めて印刷プレビューを表示する .PageSetup.Zoom = False '拡大縮小倍率をFitToPagesの設定に収める .PageSetup.FitToPagesTall = 3 '縦の枚数 .PageSetup.FitToPagesWide = 1 '横の枚数 ActiveSheet.HPageBreaks.Add Before:=Range("A19") ActiveSheet.HPageBreaks.Add Before:=Range("A37") .PrintPreview End With End Sub

  • エクセルVBA印刷範囲指定とヘッダーフッター

    1か月のうちの前期と後期のシートがそれぞれあり、前期シートを範囲指定して領収書の一部を印刷したいのですがなぜか、前に作ったヘッダーとフッターが前期だけ印刷されてしまいます。 どこに隠れているのか謎なのです。前に悩みながら作ったシートがどこかに隠れているのでしょうか? また、同じ様式のシートなのですが前期は80%にしなくてもなぜか一枚に収まります。 不思議でなりません・・・全部消したはずなのですが Sub 印刷範囲設定領収書前期() With Worksheets("領収前期") .PageSetup.PrintArea = "G1:BB91" .PrintPreview End With End Sub Sub 印刷範囲設定領収書後期() With Worksheets("領収後期") .PageSetup.Zoom = 80 .PageSetup.PrintArea = "G1:BB91" .PrintPreview End With End Sub

  • エクセルVBA

    エクセル2003です エクセルの印刷レビュ-までのマクロをおしえてください *A列からQ列までで行は1~150で伸縮します  最終行をA5より下のA列のセルに値が連続で入っている最後が最終印刷範囲行とします *罫線ありです *1ページを30行とします *2ページ目からの先頭行に(A7:Q7)を印刷に入れたい *ヘッダーは右上に日付 *フッダーは右下にページ 現状では罫線で最終行が決まってしまいます 現状コード Sub 印刷() With ActiveSheet.PageSetup .PrintTitleRows = "$7:$7" .PrintTitleColumns = "" End With ActiveSheet.PageSetup.PrintArea = Range("A1:Q1").Resize(Range("A" & Rows.Count).End(xlUp).Row).Address With ActiveSheet.PageSetup .RightHeader = "&""MS Pゴシック,太字 斜体""&14&D" .RightFooter = "&""MS Pゴシック,太字 斜体""&14&P/&N" .PaperSize = xlPaperA4 .Zoom = 75 .PrintErrors = xlPrintErrorsDisplayed End With ActiveWindow.SelectedSheets.PrintPreview End Sub 罫線ではなくA列のセルに文字列等が入っている行を最終行にしたいのですが 教えて頂けないでしょうか? 出来れば説明付きでよろしくお願いします

  • Excelマクロで印刷範囲の指定をしたい

    Excelで一覧表を作成し、 『印刷A3』と『印刷A4』というボタンを作り、 それぞれ印刷範囲が異なるようにマクロを組みたいと思い、『印刷A3』の場合は下記のマクロで問題ありませんでした。 【印刷A3】 ------------------------------------------------- Sub 印刷A3_Click() Worksheets(7).PageSetup.PrintArea = _ Range("A6").CurrentRegion.Address With Worksheets(7).PageSetup .Orientation = xlLandscape .PaperSize = xlPaperA3 .Zoom = 63 End With Worksheets(7).PrintOut Preview:=True End Sub ------------------------------------------------- セルA6以降の入力されているセルを選択できるのですが、『印刷A4』の場合は、列の範囲を23列までとし、23列目以降は印刷範囲外としたいです。 (列は最大で33列まであります) 行は『印刷A3』と同じように、入力されている全てのセルを範囲としたいです。 マクロ初心者のため、教えていただけると助かります。 よろしくお願い致します。

  • エクセルのマクロについて

    エクセルの印刷マクロを作りましたが、動作が非常に遅いのです。 スタッフ用と管理者用のマクロを作り、スタッフ用が遅いのです。 余計なものが含まれているのでしょうか? お願いします。 Sub スタッフ() ' スタッフ Macro   ActiveSheet.PageSetup.PrintArea = "$A$1:$AJ$55" With ActiveSheet.PageSetup .PrintTitleRows = "" .PrintTitleColumns = "" End With ActiveSheet.PageSetup.PrintArea = "$A$1:$AJ$55" With ActiveSheet.PageSetup .LeftHeader = "" .CenterHeader = "" .RightHeader = "" .LeftFooter = "" .CenterFooter = "" .RightFooter = "" .LeftMargin = Application.InchesToPoints(0) .RightMargin = Application.InchesToPoints(0) .TopMargin = Application.InchesToPoints(0) .BottomMargin = Application.InchesToPoints(0) .HeaderMargin = Application.InchesToPoints(0) .FooterMargin = Application.InchesToPoints(0) .PrintHeadings = False .PrintGridlines = False .PrintComments = xlPrintNoComments .CenterHorizontally = True .CenterVertically = True .Orientation = xlLandscape .Draft = False .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = False .Zoom = 76 .PrintErrors = xlPrintErrorsDisplayed End With ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True ActiveSheet.PageSetup.PrintArea = "$A$1:$AJ$60" With ActiveSheet.PageSetup .PrintTitleRows = "" .PrintTitleColumns = "" End With ActiveSheet.PageSetup.PrintArea = "$A$1:$AJ$60" With ActiveSheet.PageSetup .LeftHeader = "" .CenterHeader = "" .RightHeader = "" .LeftFooter = "" .CenterFooter = "" .RightFooter = "" .LeftMargin = Application.InchesToPoints(0) .RightMargin = Application.InchesToPoints(0) .TopMargin = Application.InchesToPoints(0) .BottomMargin = Application.InchesToPoints(0) .HeaderMargin = Application.InchesToPoints(0) .FooterMargin = Application.InchesToPoints(0) .PrintHeadings = False .PrintGridlines = False .PrintComments = xlPrintNoComments .CenterHorizontally = True .CenterVertically = True .Orientation = xlLandscape .Draft = False .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = False .Zoom = 70 .PrintErrors = xlPrintErrorsDisplayed End With Range("A1").Select End Sub

  • 複数シートをVBAで印刷

    エクセル2010VBAを使って仕事の効率化を勉強中です。 歳入日計表のシート31日分を作り、歳入月計表として合計をまとめていますが 日々印刷範囲を決めて一日分のシート印刷するのをVBA処理したいのですが できません。 1日分はこんな感じでできるのですが・・・ 31日分をどのように処理すれば日々印刷可能になるのでしょうか? お願いいたします! Sub 日計表印刷設定() With Worksheets("1") .PageSetup.PrintArea = "A2:G71" .PageSetup.LeftMargin = 55 .PageSetup.TopMargin = 40 .PageSetup.Zoom = 80 .PrintPreview End With End Sub

  • ブックの中の1枚だけ選んで印刷したい

    win7とExcel2007でマクロ作成中の初心者です。 以下、ファイルの中の複数シートを印刷できました。 Private Sub 請求書印刷_Click() Application.ScreenUpdating = False Unload Me 請求書の印刷100 '請求書印刷 Worksheets(1).Select ActiveWindow.DisplayHorizontalScrollBar = False End Sub Sub 請求書の印刷100() ' Dim i As Integer For i = 1 To Worksheets.Count - 8 With Worksheets(i) If .Range("F11").Value <> 0 Then .PageSetup.PrintArea = "$B$1:$U$44" .PrintOut End If End With Next i Worksheets(1).Activate End Sub ------------------------------------ 今度は、同一のファイルから、指定の単一のシートを印刷したいので 以下のコードを実行すると、 Private Sub 単数印刷_Click()' Application.ScreenUpdating = False Unload Me Unload G印刷 Dim i As Integer With 名簿リスト2 For i = 0 To .ListCount - 1 If .Selected(i) Then 請求書の印刷範囲200 ' Worksheets(.list(.ListIndex)).PrintPreview Worksheets(Split(.list(.ListIndex - 0), " ")(1)).PrintPreview ' End If Next i End With ActiveWindow.DisplayHorizontalScrollBar = False GH印刷.Show End Sub Sub 請求書の印刷範囲200() ' ActiveSheet.Unprotect Dim i As Integer For i = 1 To Worksheets.Count - 8 With Worksheets(i) .PageSetup.PrintArea = False '印刷範囲のクリア If .Range("F11").Value <> 0 Then .PageSetup.PrintArea = "$B$1:$T$44" End If End With Next i Worksheets(1).Activate End Sub 以下の行が黄色くなりマクロがエラーとなり停止します。 エラーは 実行時エラー9 インデックスが有効範囲にありません となります。 Worksheets(Split(.list(.ListIndex - 0), " ")(1)).PrintPreview ' これと同様のファイルで試すと何なく1枚だけ印刷できました。 このエラーの原因はなんでしょうか?解決方法を教えてください。

  • Excel 改ページ設定マクロ

    Excel で次のコードを使い改ページを設定して印刷しています。 途中に空行があって、その下には印刷不要な部分があります。 空行の上までで印刷を止めたいのですが、どう書き直したらよいのでしょうか、教えて下さい。よろしくお願いします。 With ActiveSheet maxR = .Range("A" & Rows.Count).End(xlUp).Row For wR = 4 To maxR If .Cells(wR, 5).Value <> Cells(wR - 1, 5) Then '日付が変わる時、改頁の Break Point設定 .Rows(wR).PageBreak = xlPageBreakManual End If Next End With With ActiveSheet.PageSetup .PrintTitleRows = "$1:$2" '←2行見出し .PrintArea = "A1:H" & maxR '←印刷範囲設定 End With

  • 印刷範囲を設定するvbaコード

    エクセルシートの印刷範囲を設定するvbaコードで Sub Macro1() With ActiveSheet.PageSetup .PrintArea = "$A$1:$c$10" End With End Sub としてるのですが、 "$A$1:$c$10"の部分を Range(Cells(1, 1), Cells(10,3)) 形式でやりたいのですが、 うまくできません。 Sub Macro1() With ActiveSheet.PageSetup .PrintArea = Range(Cells(1, 1), Cells(10,3)) End With End Sub としても、全部が印刷範囲として選択されてしまいます。 というか、印刷範囲が設定されません。

専門家に質問してみよう