• ベストアンサー

Excelで特定の文字・記号のところで自動的に改ページしたい

2000行ぐらいあるデータを、あるカテゴリ毎に分けて印刷したいのですが、 いちいち改ページを設定するのが面倒なので・・・ 例えばA列に数行おき(一定間隔ではない)に“○”が入力されて いたときに、“○”がある行毎に改ページを設定することは可能でしょうか? 当方、あまり複雑なことは出来ませんが、若干ならマクロの理解もできます。 教えていただけると有り難いです。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 以下の場合は、このようになります。 ------------ ○ .Cells(i + 1, 1) 1行足されている ------------改ページ しかし、そうではなく、以下のようになるなら、このようにします。 ------------ ------------改ページ ○ .Cells(i - 1, 1) 1行減らす 印刷範囲を最初に設定してから、マクロを行ってください。 出来上がったら、改ページプレビューで確認してください。 標準モジュールに設定してください。 '------------------------ Sub PageBreak_enter() Dim Rng As Range Dim i As Long '区切れの文字列 Const CHKSTRING As String = "○" With ActiveSheet  If .PageSetup.PrintArea = "" Then   MsgBox "印刷範囲を設定してください"   Exit Sub  End If   .ResetAllPageBreaks  ' ↑(何回も行わないなら要りません)  Application.ScreenUpdating = False  Set Rng = .Range(.PageSetup.PrintArea)  For i = 1 To Rng.Rows.Count  If .Cells(i, 1).Value Like CHKSTRING Then   'ここで、改ページを調整可    .Cells(i + 1, 1).PageBreak = xlPageBreakManual  End If  Next  End With  Application.ScreenUpdating = True  Set Rng = Nothing End Sub

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

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

改ページは A(1)手動 (2)位置を知らせる仕組み(#3回答?)  (3)ボタン化(VBA) B(1)決まった行数で改ページ  (2)ある列のデータが変化したらその直前で改ページ(#2回答 (3)決まった語句や数が出てきたら改ページ (4)改ページを入れないでプログラムでRange(○).PrintOutの○を調節 などが考えられる。 この質問ではB(3)かなと思う。 ーーー A列   B列 得意先A 1 2 3 4 5 得意先B 2 3 4 ff のようなデータの場合 標準モジュールに Sub test01() d = Range("B65536").End(xlUp).Row For i = 2 To d If InStr(Cells(i, "A"), "得意先") > 0 Then Cells(i, 1).PageBreak = xlPageBreakManual End If Next i Cells.PrintOut End Sub で良いようです。 ーー A(3)は シートにボタンを貼り付け、そのClickイベントに Private Sub CommandButton1_Click() ActiveCell.PageBreak = xlPageBreakManual End Sub

全文を見る
すると、全ての回答が全文表示されます。
  • robbie21
  • ベストアンサー率55% (5/9)
回答No.3

わたしからは手動で行う場合にちょっと楽になる方法を。 A列にオートフィルタをかけて、○を抽出します。 一番最初の○のある行を行ごと選択して、 [挿入]-[改ページ] を行います。 以下、 下矢印=>[F4]=>下矢印=>[F4]... と繰り返しキー入力をすればOK。 #[F4]キーは[前の動作を繰り返す]操作なので、これは改ページ挿入=>下移動の繰り返しになります。

全文を見る
すると、全ての回答が全文表示されます。
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

以下のマクロはB列の値が変わる行で改頁を挿入するマクロです。 もしカテゴリが大分類、小分類などに分かれているならもう少し判断を加える必要があるので補足するか、ご自身で改造してみてください。 (1行目がタイトル、2行目以降がデータの想定です) ご存じと思いますが、以下のマクロをALT+F11でVBE画面を開き、「VBAProjectエクスプローラのシート名右クリック」→「挿入」→「標準モジュール」で表示される画面にペーストして下さい。実行はシート画面に戻って、ALT+F8を押してマクロ一覧からマクロ名を選択して実行します。MacroBKが改行挿入、macroBKDELが改行削除です Sub MacroBK() Dim PB As HPageBreak Dim idx As Long Const tCol As String = "B" '改頁判断する列  With ActiveSheet   For idx = 3 To .Cells(65536, tCol).End(xlUp).Row    If .Cells(idx, tCol) <> .Cells(idx - 1, tCol) Then     ActiveSheet.HPageBreaks.Add Before:=.Cells(idx, tCol)    End If   Next idx  End With End Sub Sub MacroBKDEL() Dim idx, PB As Integer  PB = ActiveSheet.HPageBreaks.Count  For idx = 1 To PB    ActiveSheet.HPageBreaks(1).Delete  Next End Sub

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Excelで50行毎に改ページを入れたい

    表題を1行入れて1ページに49行となるように改ページを入れたいのですが、どのようなマクロを組めばできますか? また、行は49行の倍数と成るように印刷範囲を設定しして列は1ページに収まるように設定するにはどうしたらよいか併せて教えていただければ助かります。 例えば、349行 F列まである場合は、縦が7枚×横が1ページとなるように自動で設定したいです。

  • エクセルの最終ページだけを自動印刷

    エクセルの最終ページだけを自動印刷するには、どうしたらいいのでしょうか?マクロVBAを使い、エクセルシートが、何ページにわたって印刷されるのか判定し、その最終ページだけを印刷したいのです。 目的は、エクセルの表の最終行に新しいレコードを追加して行ってるのですが。手作業ですといちいちプレビューして何ページにまたがってるか確認して、そのページ番号を指定せねばなりません。その最終ページだけ印刷したいことがよくあるので、マクロで自動化したいのです。

  • Excelの印刷ページ設定について

    Excelのページ設定を教えてください。 まず、印刷範囲を1ページ目、2ページ目といった風に区切りたいのです。 そこで、ある決まった行ずつ、例えば50行ずつまとめて印刷ページ範囲を指定したい。 また、情報はすべてのセルに入って入るが、例えばそのページ設定をC列からF列かつ5行から10行まで、2ページ目は15行目から20行目まで、3ページ目は25行目から、、、、、とかいったようにするにはどうすればいいでしょうか? 教えてください。よろしくお願いします。

  • excelのセルの自動設定について。

    excelのセル(行の高さと列の幅)を、A4のサイズにぴったり合うように設定したいです(もちろん等間隔に)。 つまりA4の紙最大限を使える大きさにセルを設定したいのですが、行の高さ設定あるいは列の幅設定を入力しようとしても、自分で数字を考えなくてはいけないのですがそれではピッタリにはなりません。 印刷プレビューで拡大縮小をする方法だと、縦か横どちらかに合わせる事になるので、どちらかは余白が出来てしまいます。 どうすればピッタリの大きさに設定することが出来るでしょうか。ご回答よろしくお願いいたします。

  • excel印刷で改頁をする時に罫線を引きたいのですが、良い方法ありますか?

    excel印刷で20枚ほど印刷しています。 大分類・中分類・明細と言った感じの一覧表です。 大分類がA列で100行ほどを枠線で囲っています。中分類がB列で20行程を枠線で囲ってタイトルを入れています。 明細は一行づつで、罫線で囲っています。 セル結合はしていません。 そこで、印刷すると最終行の大分類・中分類で、下部線が印刷されない頁が出てきます。明細列は印刷されます。 (罫線自体excelに入ってないですから当然ですが。) 印刷する為に、罫線を入力すると画面での見た目が良くない為入れたくないです。 そこで、改頁前の最終行に罫線を印刷するような設定をしたいのですが、良い方法は無いでしょうか? <出来ればマクロは使いたくないです。> 宜しくお願い致します。

  • エクセルVBA

    エクセル2003です エクセルの印刷するマクロをおしえてください *A列からQ列までで行は1~300で伸縮します  最終行をA5より下のA列のセルに値が連続で入っている最後が最終印刷範囲行とします *罫線ありです *1ページを30行とします *2ページ目からの先頭行に(A4:Q4)を印刷に入れたい マクロで印刷設定をした事がないのでさっぱりわかりません *ヘッダーとフッダーも可能でしょうか? 出来れば説明付きでよろしくお願いします

  • Excelで複数ページにわたり、特定の列・行を印字したい

    Excel2002を使っています。 言葉で上手く説明できるか分からないのですが…下記のような事を行ないたいのですが、うまく出来ません。どうすればよいか教えて下さい。 <現在のシートの内容> ・A1~B2まで結合、C1~G2まで結合、H1~I2まで結合 ・3行目はA列のみに文字を入力 ・4,5行目は空白 ・6~7行目は2行2列ごとに結合し、最後(K、L、M列)のみ3列を結合 ・8行目以下は行では結合せず、6~7行目にあわせて列を結合し各セルに数値や文字を入力(A~M列まで) ・100行目までデータあり。途中、改ページあり。 <行ないたいこと> ・A1~I3までの内容とA6~M7までの内容を、全てのページの上部に印刷したい <試したこと> ページ設定の「シート」で「行のタイトル」「列のタイトル」を入力 ※「行のタイトル」は$6:$7、※「列のタイトル」は$A:$Mとしました <結果> ・A6~M7までの内容は全てのシートに上手く印字されましたが、  A1~I3の内容は1枚目のみでした <これは避けたい!ということ> ・ページが変わるごとにA1~I3までの内容とA6~M7までの内容をコピー&ペーストすること。 ※ファイルを見ている時は、途中に余計なものが入らないようにしたい。現状は、ウィンドウ枠の固定で7行目まで固定しています。 以上です どうすれば、上手く印刷できるでしょうか?

  • Excelで特定の文字列から自動的に数値を入れたい

    A列1行目の文字に対してB列1行目に自動的に数値が表示されるようにしたいのですが可能なのでしょうか?   A   B 1 林檎 150←自動的に表示したい。 例えばA列1行目に『林檎』と入れたらB列1行目に『150』、A列1行目に『梨』と入れたらB列1行目に『200』という感じにしたいのです。 ちなみにA列1行目はデータ入力規則でリストから選択肢を選ぶように設定されています。

  • excelマクロでセル値をフッターに設定&印刷

    改ページごとに(異なる)セル値をフッターにセットし、フォントサイズを32に設定したい。 A列の全てのセルに「品名」が入力されている表があります。 下の表のイメージですが、1行目を印刷タイトルとし、1ページ目は2~3行まで、2ページ目は4行のみ、3ページ目は5~6行まで・・・というように品名が変わるごとに改ページが既に設定されています。 B列の印刷枚数も品名ごとに枚数が決まっており数値が入力されています。      A     B   1  品名  印刷枚数   2  あ     2   3  あ    2   4  い    3   5  う     1   6  う     1 この表は数百行(数十ページ)続いているのですが、各ページに該当する品名をそれぞれフッター(左)に設定し、フォントサイズを32にし、更に各ページに該当する印刷枚数分だけまとめて印刷するマクロを作りたいです。 アドバイスのほど宜しくお願いします。

  • エクセルで特定の行を消して間隔詰めて印刷したい

    オフィス2003エクセルです。 メールで送られてくるデーターの特定の行を消してその空いた行の間隔は詰めて印刷したいのです。 理由は横に長い表なので不要な行があると見にくいですし、印刷する時に印刷紙を横にして文字を小さくしないといけませんので・・ 今は毎回手動で行を右クリックで削除しています。そして印刷時に紙方向を横にして80%くらいに縮小して印刷しています。 更に特定の行に色付けして印刷できればと思います。 検索して探しているとどうも「マクロ」を使わないとダメなようですが、簡単にできる方法はないものでしょうか? 自分でコピー&ペーストでできないものかとマクロを開いて、似た感じの質者回答を入力しようとしましたが、マクロ名は文字入力できますが、その下にはなにも入力できませんでした。 どなたかご教授お願いします。

専門家に質問してみよう