• ベストアンサー

エクセルで改ページ部分に自動で線を

エクセルで帳票をプリントする際、データの量によっては自動改ページされ複数枚になります。 その際、改ページされる最後のところに線を自動で引くことは可能でしょうか? 次ページの先頭には線は不要ですが、3ページになる場合は次ページの最後に線が必要です。 フッター部分の表記とデータ部分を明確に区別するためです。よろしくお願いします。

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

  • ベストアンサー
  • taocat
  • ベストアンサー率61% (191/310)
回答No.6

こんばんは。 ●一頁しかない場合で 1.行数が一頁に満たない時 2.行数が一頁にぴったりの時 ●複数頁ある場合で 1.最後の頁の行数が頁に満たない時 2.最後の頁の行数が頁にぴったりの時 上記のことも考慮し、それぞれの頁のフッターの直ぐ上の行に下線を引くのですよね。 新しいシートで下記のコードをお試あれ。 使用列は、A-Dとする。 --------------------------------------------- Sub Test()  Dim BreakSu As Integer  Dim BreakSu2 As Integer  Dim B As Integer  Dim Rw As Long  Dim LastRow As Long  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   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")) = ""  ActiveSheet.PrintPreview End Sub ------------------------------------------------ プリントが済んだ後の下線を消す方法は考えてみてください。 以上です。

merlionXX
質問者

お礼

すばらしい! 後ろに100行追加しちゃうわけですね、なるほどぉ・・・。 ありがとうございました。

その他の回答 (5)

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.5

>だから自動改ページさせているので、改ページ場所は不定なんですよ~。 #2です。力技ですが、、、 VBAマクロでやるなら、HPageBreaks コレクションを調べることで水平改ページの位置がわかります。下記サンプルは水平改ページの位置(行番号)をイミディエイトに表示するだけですが、実際にはセル罫線を引く処理を挟んでやれば良いかと思います。 例えば、 Intersect(Columns("A:E"), Rows(Pb.Location.Row)) _   .Borders(xlEdgeTop).Weight = xlThin こんな感じでしょうか。 しかし、『どこまで自動的なのか』という問題があります。 ご紹介した方法は、データ修正の度に罫線の引きなおし作業が発生します。この点についてもコーディングする必要がありますね。ご参考までに。 Sub Sample()   Dim Pb As HPageBreak   For Each Pb In ActiveSheet.HPageBreaks     Debug.Print Pb.Location.Row   Next Pb End Sub

merlionXX
質問者

お礼

出来ました! ありがとうございます。 ただ、これだと改ページしないと、つまり一枚だけだと罫線がでませんよね。当たり前だけど。 一枚の場合でも自動的に改ページされるであろうあたりで出す方法はないですか?

  • taocat
  • ベストアンサー率61% (191/310)
回答No.4

こんにちは。 汎用性を考えるなら、 HPageBreakオブジェクトのLocationプロパティを使ってみたらどうでしょう。 HPageBreaks (HPageBreakオブジェクトのコレクション) ActiveSheet.HPageBreaks.Count (改ページ総数) ActiveSheet.HPageBreaks(1).Location.Row (一番目の改ページの行) Location.Rowで改ページの行が分りますので、その上の行に線を引けばいいですよね。 以上です。

merlionXX
質問者

お礼

HPageBreakオブジェクトのLocationプロパティとは初めて聞いた呪文です。 ありがとうございました。

  • takkuni
  • ベストアンサー率24% (166/676)
回答No.3

タイトル(項目)を各頁に印刷するようにすれば可能かと思います。ファイル ~ ページ設定でシートタブから行列どちらでも指定できます。

merlionXX
質問者

補足

行や列の印刷タイトルのことですか? これだとヘッダーとの境のところにはもってこれますが、フッダーでは無理ではないでしょうか?

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.2

条件付書式を利用してみてはどうですか? 例えば、1ページ60行で改ページするように印刷設定されているのであれば、 [数式が] =MOD(ROW(),60)=0 で罫線書式から下線を設定します。

merlionXX
質問者

補足

ありがとうございます。 1ページの行数が決まっていればそれでいいんですが、データによってはセル内で折り返し表示させるため、行の高さが変わるんです。 だから自動改ページさせているので、改ページ場所は不定なんですよ~。

  • moooon
  • ベストアンサー率26% (26/98)
回答No.1

難しい方法は知りませんが、フッターを使っているんであればそれを利用したらいかがでしょう。 フッターの1行目をスペースで連打し、フォントの設定で架線を選びます。 これで下線だけが表示され、丁度データとフッターの境になるのではないですか?

merlionXX
質問者

補足

その方法をためしました。 既に文字数がたくさん入っているためか、エラーになってしまいます。 空白のページでためしたら、短い線は引けましたが、いくらスペースを打っても長くなりません。

関連するQ&A

  • EXCELで表紙のフッターに頁数を入れず、2枚目から頁数を入れる

    1枚のSHEETに下方向に向かってA4サイズのデーターが30枚以上続いていて、1枚目は表紙扱いでフッターに頁数を入れず、2枚目からフッターに2と入れるようにする方法を「ページ設定」→「ヘッダー、フッター」→「フッターの編集」からできますか?WORDではありますがEXCELだと見当たりません。 ただプリントするだけなら2枚目以降をプリントしてから、フッターを消して1枚目をプリントすればいいのですが、EXCELごとメールで送り、受け手が更に頁数を増やし、その後にプリントするので、プリント方法の指示をするのではなくて、設定を入れて誰がプリントしても1枚目にはページ数が入らず、2枚から2・3・4・・・とふれるようにしておきたいのです。 どなたかいい方法がありましたら、教えて下さい。

  • 表のプリントで、最初の行を複数ページ出すには。

    エクセルの表をプリントする際、 (1)表の先頭のインデックス部分が毎ページ先頭に出るように複数ページにわたって印刷する方法がわからず苦労しています。 (2)ページごとに印刷する範囲を決める方法もわかりません。たとえば、横軸が複数年の月を表す場合、数ページに分けて印刷すると、12月区切りではなく、中途半端な月で区切られたりします。 よろしくお願いします。

  • Excelについてのセルにページ番号

    Excelについての質問です。 複数枚にわたるシートがあるんですがそれをフッターではなく セルの中に自動的にページをふるように設定することって できるのでしょうか?

  • Excel 次ページにも表示

    以下のような表を作成し、印刷したいと思います。 番号 項目名 備考 01  ××  ×× このとき、リストが多く数ページにわたってしまう場合、『番号 項目名 備考』の部分を、自動的に次ページの先頭にも表示されるようにしたいのですが、そのやり方がわかりません。どうしたらよいでしょうか。 お手数をおかけしますがよろしくお願いします。

  • エクセルのシートのタイトル設定

    エクセルで帳票を作りたいときに上下に罫線を含んだ(数式含む)ヘッダーフッターを作りたいときってないですか? 例えば見積書とか… 品名 数量 単価 金額 ←見出し(印刷固定) あ   1 10 10 ┐ い   2  5 10 ├データ(印刷時に複数の頁) う   3  2  6 ┘ 頁計       26 ←これができません。(印刷固定) 要するに上下でデータを挟みたいときどうすればいいのでしょうか?

  • Wordでフッターに1ページ目はA-2、2ページ目からA-2-2から続く番号を自動で入れたい

    質問です。 書類を作成するように上司に言われたのですが、フッター部分に、最初のページはA-2 次のページはA-2-2 その次はA-2-3 次はA-2-4 と末尾の数字だけを自動で増やすような設定をしてほしいとの事なんです。 いろいろ試してみたのですが、手動で変更することしかできないのでしょうか? 明日までに設定してほしいとの事なのでみなさま回答をお願いいたします。

  • Accessフォームに行番号を自動的に付与するには

    帳票フォームにデータを入力際、先頭行の行番号項目に必ず1、以下 2、3・・と自動的に番号をふりたいのですがどうすれば良いでしょうか? よろしくお願いします。 (Access2000を使用しています)

  • エクセルのページ設定について。

    Excel(2002を使用)で同じブック内でフッターにページ数を入れる際、最初のシートをフッターで&[ページ番号]で入れたら1~6ページまででした。 次のシートを7ページからページ数を入れたいのですが、入れられません。 過去の質問を見てみたら、4ページ目にする場合、&[ページ番号]+3とすればよいと書いてありました。 そこで&[ページ番号]+6としたのですが「16」と表示されてしまいます。 中途半端なところから(例えば7ページから)入れるにはどうすればいいのでしょうか? 教えてください。お願いします。

  • ワード2000でのページ番号について

    次のようにフッター中央にページ番号を付けたいのですが、上手くいかず困っています。 1ページ目:1 2ページ目:2 3ページ目:3-1 4ページ目:3-2 5ページ目:5 それとページ番号は大文字で表記したいのです。 セクション区切りは各ページごとに挿入してありますが、 3ページ目と4ページ目が上手くいかず、直接入力しています。 自動的に挿入する方法があったら、是非教えてください!

  • 2枚目を「1」ページ目にする、ページ番号の付け方は?

    word2007を使っています。 フッターへのページ番号の付け方について質問します。 複数枚の書類を作った時、 1枚目は表紙としてベージ番号を付けず、 2枚目を「1」ページ目として、以降順番に番号付けをするには どうすればいいでしょうか? ちなみに、「先頭ページのみ別指定」というチェックボックスにも チェックを入れて色々試したのですが、うまくいきません。 よろしくお願いします。

専門家に質問してみよう