• ベストアンサー

印刷時、改ページごとの下枠にのみ罫線を引きたい

印刷時、改ページごとの下枠にのみ罫線を引きたい 印刷時、改ページごとの下枠にのみ罫線を引きたいのですが、 エクセルの設定でできないでしょうか? (上枠には罫線を表示させたくないのです) できない場合、実現できる方法はあるでしょうか? よろしくお願いいたします。。。

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

  • ベストアンサー
回答No.5

はい^^ とりあえずは、自分の自由になるファイル以外VBAは使わない方が 賢明です、他人のものに組み込むと、大変なことになります^^ ついでに もう一案ですが、 もし、ページ区切りが何行毎か決まっていて わかっていれば、条件付き書式で 罫線を 引くことも出来ます。 対象のセルの範囲を全て選択して、 条件付き書式で   「数式が」にして 式の欄に =MOD(ROW(),40)=38  として 書式の設定で 下罫線を設定すればOKです、 これで 1ページ目は38行、それ以降は40行ごと(38行,78,118,158,、、、) に罫線が引かれます。 数値は、適当に変えてみてください。 蛇足でしたが、参考まで^^

_yoh_
質問者

お礼

条件付き書式で、希望通りの動きになりました!!!! ありがとうございます!!!! ただひとつ疑問が・・・。 条件付き書式を設定した後保存すると、改ページの設定が勝手に変わってしまいます。。。 保存すると何故か何かデータが入ったように右に1行増えてしまい、 例えば通常2ページ分のデータでもプレビューすると4ページ(右に2ページ分の空のページ)になってしまうのです。 調べてもよくわからないので・・・また別に質問しようと思います(^^; 本当にありがとうございました!!

_yoh_
質問者

補足

たくさんご親切にありがとうございます!! そうですよね。。。 ですが、こちらの案も凄いです!こんな事ができるのですね! ちょっと考えて・・・応用すればできるかもしれません。。。 やってみたらまたご報告させていただきます!

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

その他の回答 (4)

回答No.4

マクロでなら 出来ると思いますが、、、 改ページの位置を検出して、その行の上の行に罫線を引けばいいと思います。  下の例ではA列(1列目)で最終行を検出して、最終行までの改ページの上の行に  中太の罫線をA列からz列(26列目)まで下罫線を引きます。   最終行を見つける列(この例ではA列)と   シート名や罫線の太さ、罫線の列は 環境に合わせて修正してください。    標準モジュールのOption Explicitの直下に以下を貼り付けてください Dim 改頁行 As Long Dim 最終行 As Long Dim シート名 As String Dim I As Long Sub 改頁設定() シート名 = "Sheet1" '←実際のシート名を If ActiveSheet.Name <> シート名 Then Exit Sub 最終行 = Cells(Rows.Count, 1).End(xlUp).Row 'データ(A列)の最終行 Application.ScreenUpdating = False For I = 1 To ActiveSheet.HPageBreaks.Count 改頁行 = ActiveSheet.HPageBreaks(I).Location.Row If 改頁行 > 最終行 Then: Exit For '   A列(1)からZ列まで下罫線を引く With Range(Cells(改頁行 - 1, 1), Cells(改頁行 - 1, 26)).Borders(xlEdgeBottom) .LineStyle = xlContinuous '←実線、破線=xlDash、なし=xlLineStyleNone .Weight = xlMedium '←中線、極細=xlHairline、細=xlThin、太=xlThick End With Next With Range(Cells(最終行, 1), Cells(最終行, 26)).Borders(xlEdgeBottom) .LineStyle = xlContinuous '←実線、破線=xlDash、なし=xlLineStyleNone .Weight = xlMedium '←中線、極細=xlHairline、細=xlThin、太=xlThick End With Application.ScreenUpdating = True End Sub '-------------------End Subまで貼り付け 以下は引いた罫線を消すためのものです。  引いた罫線と同じ太さの罫線を見つけて消します。  ・・・).Weight = xlMedium Then の xlMediumは上記の例で引いたものと  同じにします。 Sub 罫線削除() シート名 = "Sheet1" '←実際のシート名を If ActiveSheet.Name <> シート名 Then Exit Sub 最終行 = Cells(Rows.Count, 1).End(xlUp).Row 'データ(A列)の最終行 Application.ScreenUpdating = False For I = 1 To 最終行 If Range(Cells(I, 1), Cells(I, 26)). _ Borders(xlEdgeBottom).Weight = xlMedium Then Range(Cells(I, 1), Cells(I - 1, 26)). _ Borders(xlEdgeBottom).LineStyle = xlLineStyleNone End If Next Application.ScreenUpdating = True End Sub どちらも標準モジュールにコピーしてください。 上の「改頁設定」はThisWorkbookのモジュールに以下をコピーすると、印刷または プレビューする時に自動で走ります。先に印刷プレビューを見てください Private Sub Workbook_BeforePrint(Cancel As Boolean) 改頁設定 ' 印刷前に改頁設定へ飛ぶ End Sub 消す方は、印刷が終わったことを検知出来ないので どうしても手動で起動になるでしょう。

_yoh_
質問者

補足

ご回答ありがとうございます!! マクロは全く知識がないため解読すらできないのですが・・・この方法で可能か試してみます。 ただ今回人の手伝いで行っているものでして、それにマクロを使って良いかわからないのです・・・。 せっかく教えていただいたのに使えなかったらすみません。。。 でもやはりマクロを使わないと思い通りのことは実現できなさそうなので、検討してみたいと思います。

すると、全ての回答が全文表示されます。
noname#164823
noname#164823
回答No.3

改ページプレビューの青い点線の上に、線を引く事により、 ご希望の状態になると思います。 1本、線をShft+Altを押しながら引きます。Altを押しながら引くと グリッド線の上にぴったり乗ります。 線種・色を任意にして下さい。 その後、この線を選択し、右クリック。 「オートシェイプの書式設定」→「プロパティ」の「オブジェクトの位置関係」 「セルに合わせて移動やサイズ変更をしない」にチェックします。 これで、行の追加や削除をしても同じ位置に線が乗ります。 他の線はCtrlを押しながらドラッグ&ドラッグでコピーして下さい。ウィンドウを 縮小して作業すると楽です。 印刷プレビューで確認し、用紙からはみ出るようでしたら、Ctrlを押しながら カーソルキーで微調整して下さい。多少青い線の上に配置するとうまく印刷 されます。

_yoh_
質問者

お礼

お礼が遅くなり申し訳ありません。。。 No.5の方の方法でうまくいきました! 図の線もよく使いますので勉強になりました! ありがとうございました!

すると、全ての回答が全文表示されます。
noname#164823
noname#164823
回答No.2

「図形」の「直線」ではだめでしょうか。応急的な方法で、データの 追加や削除があると無理ですが。 ちょうどページの最下端に乗るように引き、印刷プレビューを見ながら、 良い位置に配置します。データが最終行まで入っている場合は、余白を 減らし、1行挿入し、この行高を狭くします。この行に乗るように配置すれば 印刷できると思います。 最終ページのデータが少なければ、ページの最後の方のセルに、1つだけ 何か文字を入力して、色を「白」にすれば、ここまでデータが入った事になり、 線が表示されます。

_yoh_
質問者

補足

ご回答ありがとうございます!! なるほど!「図形」は思いつきませんでした。 実はデータは可変でして、最終ページにデータが少ない場合はページ最後の方には何も表示させたくないのです。。 なので、ちょうど改ページプレビューで表示される青い線上にだけ線が表示されるようにしたいのです。 またしても説明不足で申し訳ありません。。。 無理でしょうか。。。 ですが、↑の方法試してみます!

すると、全ての回答が全文表示されます。
回答No.1

無理やりですが、「ページ設定」の「フッター編集」に「―」を幅の分入力すればでると思います。「―――――――」こんな感じで。 「左側」「中央」「右側」のどれかに一行分入れればよいと思います。 「―」はキーボードの文字ではなく、文字一覧から入力したものです。 細かい設定はできないかもしれませんが、とりあえずでると思います。

_yoh_
質問者

補足

早々のご回答ありがとうございます! フッターに「_」を設定したら思っていたような表示にできました。 ですが、実は最後のページは1ページ分のデータがなく、フッターに設定した「_」が変に表示されてしまいます。 説明不足で申し訳ありません。。。 ちょうど改ページプレビューで見える部分にだけ表示させたいのですが、やはり難しいでしょうか?

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

関連するQ&A