- ベストアンサー
Excelで改ページを1行ずつ連続で入れる方法 | 改ページ設定の手順
kkkkkmの回答
下余白で1ページ1行になるように調整はできますが最初の1ページがタイトル行だけになってしまいますので2ページから印刷するようにするというのはどうでしょう。
関連するQ&A
- エクセル VBA 水平改ページ位置の変更方法について教えてください。
おはようございます。いつも大変お世話になっています。 エクセルで、ある元のシートから、ある条件で抽出して新しいシートを作りました。 その新しいシートの印刷指定方法について教えてください。 最初だけ53行、その後50行づつ区切って印刷したいため、以下のようなVBAを書いてみました。 ActiveWindow.View = xlPageBreakPreview Set ActiveSheet.HPageBreaks(1).Location = Range("a53") Set ActiveSheet.HPageBreaks(2).Location = Range("a103") Set ActiveSheet.HPageBreaks(3).Location = Range("a153") Set ActiveSheet.HPageBreaks(4).Location = Range("a203") Set ActiveSheet.HPageBreaks(5).Location = Range("a253") ・・・・・・ が、元のシートのデータが、日によって変動するため、新しいシートのデータが全部で120行位で終わってしまう場合があります。 その場合、100以上の指定していた部分から、 「インデックスが有効範囲にありません」と、止まってしまうのです。 日によってデータの行数は変わりますが、多い場合も同じように50行区切りで印刷したい場合には、どのようにしたら良いでしょうか? どうぞよろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- EXCEL VBAでHPageBreaks
いつもお世話様です。 こちらで教えていただいたマクロでフッダーの前に自動で罫線を引こうとしています。 前の質問は→http://okweb.jp/kotaeru.php3?q=1310420 下記のマクロを動かすと、1ページだけの時はちゃんとフッダーの上に罫線が引けますが、2ページ目になると「インデックスが有効範囲にありません」という実行時エラーが出てしまいます。 どこがいけないのでしょうか? Sub 自動罫線TEST() Dim BreakSu As Integer Dim BreakSu2 As Integer Dim B As Integer Dim Rw As Long Dim LastRow As Long For N = 1 To 3 With Cells .ClearContents .Borders(xlEdgeTop).LineStyle = xlNone .Borders(xlEdgeBottom).LineStyle = xlNone .Borders(xlInsideHorizontal).LineStyle = xlNone End With Range("A1:D" & N * 30) = N & N & N 'TESTデータ挿入 LastRow = Range("A65536").End(xlUp).Row '最終行取得 BreakSu = ActiveSheet.HPageBreaks.Count '改ページ数取得 Range(Cells(LastRow + 1, "A"), Cells(LastRow + 100, "A")) = "ABC" '改ページ数を増やすダミー BreakSu2 = ActiveSheet.HPageBreaks.Count '増えた改ページ数取得 For B = 1 To BreakSu + 1 ' MsgBox B & "-" & BreakSu + 1 & "-" & BreakSu2 Rw = ActiveSheet.HPageBreaks(B).Location.Row - 1 '改ページ前行取得(ここでエラー!) With Range(Cells(Rw, "A"), Cells(Rw, "D")).Borders(xlEdgeBottom) '改ページ前罫線挿入 .LineStyle = xlContinuous End With Next B Range(Cells(LastRow + 1, "A"), Cells(LastRow + 100, "A")) = ClearContents 'ダミー消去 ActiveSheet.PrintPreview Next End Sub
- ベストアンサー
- オフィス系ソフト
- VBAがうまくうごきません。
以下のプログラムを書きました。 以下のプログラムではA1~C108を1ページ、A109~C216を2ページ目、A217~C325を3ページ目として印刷するようにページ設定したいのですが、うまく動きません。 どうしてでしょうか? わかるかたがいたら教えていただけないでしょうか? よろしくお願いします。 Sub 改ページ設定() ActiveWindow.View = xlPageBreakPreview '改ページプレビュー Set ActiveSheet.HPageBreaks(1).Location = Range("C109") '水平改ページ位置1を変更 Set ActiveSheet.HPageBreaks(2).Location = Range("C217") '水平改ページ位置2を変更 Set ActiveSheet.HPageBreaks(3).Location = Range("C326") '水平改ページ位置2を変更 End Sub
- ベストアンサー
- Visual Basic
- エクセル 最終行からの連続コピー
エクセルで最終行から上に連続する10行(最終行含む)をコピーしたいです。 途中、空白行が含まれている場合でも、最終行を特定し、コピーできるようにするには、下記のコードにどう手を加えたらよいでしょうか? どなたかアドバイスをお願いします。 Sub Test() Dim i As Long Dim j As Integer Dim rng As Range With ActiveSheet 'フィルタ .Range("A1").CurrentRegion.AutoFilter Field:=1 '行選択 With .AutoFilter.Range For i = .Cells(.Cells.Count).Row To 2 Step -1 If .Rows(i).Hidden = False Then If rng Is Nothing Then Set rng = .Rows(i) Else Set rng = Union(rng, .Rows(i)) End If j = j + 1 End If If j >= 10 Then Exit For Next i 'コピー If Not rng Is Nothing Then rng.Copy Worksheets("Sheet2").Range("A1") Beep Else MsgBox "該当行は存在しません。", 48 End If End With End With Set rng = Nothing なお、コードはこちらを参考にさせていただきました。 http://okwave.jp/qa3552420.html?ans_count_asc=1
- 締切済み
- その他MS Office製品
- 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
- ベストアンサー
- オフィス系ソフト
- エクセルで任意の文字列の1行後に改ページ挿入
どなたかお教え下さい。 沢山の文字列が並んだデータがあり、下記関数だと「...コマンド正常終了」の 文字列の行に改ページが挿入されてしまいます。 該当文字列行ではなく、「...コマンド正常終了」の文字列の1行あとに改ペー ジを挿入したいのですが どこを修正または追加したら良いかご教授願います。 初心者ですみません・・・ ------------------------------------------------------------------------- Dim r As Range, fr, fa As String Application.ScreenUpdating = False With ActiveSheet Set r = .Range("A1:A" & .Range("A65536").End(xlDown).Row) Set fr = r.Find("...コマンド正常終了", LookAt:=xlPart) If Not fr Is Nothing Then fa = fr.Address Do If fr.Address <> "$A$1" Then .HPageBreaks.Add Before:=fr Set fr = r.FindNext(fr) Loop While Not fr Is Nothing And fa <> fr.Address End If End With -------------------------------------------------------------------------
- ベストアンサー
- Visual Basic
- 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
- ベストアンサー
- オフィス系ソフト
- 複数のシートの1ページ目と2ページ目を連続印刷したい
Vista Excel2007でマクロ作成中の初心者です。 複数のシートが12個あります。(増減あり) それぞれのシートには、必ず2ページの改ページが設定してあります。 この複数シートの1ページ目だけを連続印刷したいです。 また、2ページ目だけを連続印刷したいです。以下のようにしたのですが うまく印刷できません。よろしくお願いします。 Sub シートの1ページ目の印刷() Dim i As Integer For i = 1 To 12 With Worksheets(i) .Range("A1:Q44").PrintOut End With Next i End If End Sub ------------------------------------- Sub シートの2ページ目の印刷() Dim i As Integer For i = 1 To 12 With Worksheets(i) .Range("Q46:Q89").PrintOut End With Next i End If End Sub
- ベストアンサー
- Visual Basic
- 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
- ベストアンサー
- Excel(エクセル)
- エクセル 最終行からの連続コピー
* すぐに回答を! エクセルC20からI51までデータを1日1行ずつ入力します。 データが入力されている最終行から上に連続する10行(最終行含む)をコピーしたいのですが、最終行から10行上をどのように認識させたらいいのか、わかりません。Offsetなど試してみましたがダメでした。 よろしくお願いします。 Sub dataコピー() Dim i As Long Dim j As Integer Dim rng As Range '最後尾から10行前までを選択 With Worksheets("月").Range(Cells(20, 3), Cells(51, 10)) For i = Cells(Rows.Count, 1).End(xlUp).Row To -10? If rng Is Nothing Then Set rng = .Rows(i) End If j = j + 1 If j >= 10 Then Exit For Next i 'コピー If Not rng Is Nothing Then rng.Copy Range("M1") Beep Else MsgBox "該当行は存在しません。", 48 End If End With Set rng = Nothing End Sub コードはこちらを参考にしました http://questionbox.jp.msn.com/qa5440189.html
- 締切済み
- オフィス系ソフト
お礼
回答ありがとうございます。参考にさせていただきます。 (・´з`・) 社員の人がやったやりかたは下余白を使ったやりかただと思います。 (・´з`・) 自分の権限でマクロとかVBAを動かして良いかまだ許可を頂いていないので 下余白を使ったやり方でやりたいと思います。ありがとうございました。 (・´з`・)
補足
(・´з`・) ありがとうございます。確認してから印刷するので 下余白を調整して2ページ目から印刷します。 ありがとうございました。