Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
  • ベストアンサー

EXCELで改頁される行を太線にするには?

EXCELで外枠は太線、各行の区切り線は細線を 使用した表を作っています。 これがかなり大きな表ですので、印刷すると かなりの枚数になるんですが、各ページの最終行 (下の枠線)は当然細線になって、上、右、左の 太い枠線とのバランスが悪くなってしまいます。 改頁される行の区切り線のみ太線に変更していって もいいのですが、行を挿入した時とか行の高さを 変更したときにズレてしまって大変です。 印刷した時に自動的に改頁される行のみ太線に なるような機能はないのでしょうか? もしくはVBA等でそのような機能を作成することは 可能でしょうか? ご教示いただけましたら有り難いです。 よろしくお願い致します。

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

  • ベストアンサー
  • masa_019
  • ベストアンサー率61% (121/197)
回答No.4

詳しいシート構成がわかりませんので、 こんな感じでやれば出来そうというのをひとつ。 水平の改ページ線と同じ位置に 太い罫線を設定します。 Sub TEST() Dim hpb As HPageBreak ActiveWindow.View = xlPageBreakPreview For Each hpb In ActiveSheet.HPageBreaks Range(hpb.Location.Address).Resize(, 8). _ Borders(xlEdgeTop).Weight = xlThick Next ActiveWindow.View = xlNormalView End Sub とりあえずA列から8列分に太い罫線を設定します。 実際に使うにはもう一工夫必要でしょう。

ayaka_ikeike
質問者

お礼

ご回答ありがとうございます。 ご教示いただいたコードに一部手を加えるかたちで、 当初考えていた以上のものができました。 本当に助かりました。ありがとうございます!

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

その他の回答 (3)

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

こんにちは。 ちょっと確認したいのですが、 ------------------------------ ←細線 ------------------------------ ←細線 ------------------------------ ←細線      ・      ・ ------------------------------ ←細線 --------------- ←太線(改ページ) ------------------------------ ←細線 ------------------------------ ←細線 その部分を変更するのですね。 つまり、ずっと繋がっているということなのでしょうか? こんなマクロコードを考えてみました。 設定の方法: Alt +  F11 (Altを押しながらF11)を押すと、Visual Basic Editor 画面が出てきます。 次に、メニューの[挿入]-[標準モジュール]と開けて、クリックすると、画面が現れますので、以下のコードを貼り付けて、再び、Alt + F11 で、画面を閉じます。 後は、フォーム・ツールやコントロールツールのボタンや、ショートカットにすると便利かと思います。 ユーザー設定変更部分: 現在、仮に設定されています。 Const Cl As Integer = 6 ' 6セル分の長さの線を引く Cells(hc, 1) 1列目だから、1 が入れてあります。B列だったら、2になります。 With Cells(hc, 1).Resize(, Cl).Borders(xlEdgeBottom) このマクロは、表の一番最初の部分には太線は引かれません。 また、表の一番最後の部分は、改ページ位置ではなく、印刷の終わりに引かれます。 '<標準モジュール> Option Explicit Sub PageLineThickness()   Dim TotalPage As Long, i As Long, j As Integer, MaxRow As Long   Dim pa As String, hc As Long, bhc As Long   Const Cl As Integer = 6 ' 6セル分の長さの線を引く   pa = ActiveSheet.PageSetup.PrintArea   MaxRow = Range(pa).Row + Range(pa).Rows.Count - 1   TotalPage = Application.ExecuteExcel4Macro("GET.DOCUMENT(50)")   If Range(pa).Row <> 1 Then    j = 2    Else    j = 1   End If   Application.ScreenUpdating = False   For i = j To TotalPage    hc = ExecuteExcel4Macro("INDEX(GET.DOCUMENT(64),1, " & i & ")")    'A列(1)から、セルを引く    If i = TotalPage Then      hc = MaxRow '最後のページのみ、最終行に入れる    End If    'A列(,1) から、セルの長さを引く    With Cells(hc, 1).Resize(, Cl).Borders(xlEdgeBottom)      .LineStyle = xlContinuous      .Weight = xlThick      .ColorIndex = xlAutomatic    End With    bhc = hc   Next i   Application.ScreenUpdating = True   MsgBox "終了です。" End Sub

ayaka_ikeike
質問者

お礼

詳しいご回答ありがとうございます。 No.4で教えていただいた内容も併せて参考にさせて いただき、目的を達成できました! コードまで記述していただき、本当に助かりました。 ありがとうございます。

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

表の1行目に何も入れない行を作り、その上下に太い罫線を引きます。 ファイル→ページ設定の「シート」タブの 「印刷タイトル」「行のタイトル」に、この1行目を設定すればどうでしょうか?

ayaka_ikeike
質問者

お礼

ご回答ありがとうございます。 説明不足で申し訳ございません。 下の方でも補足させて頂いたような内容でして、 行のタイトルを設定しても、頁の下枠が太線には なりません。様式をどのように変更しても 各頁の外枠(上下左右の外枠)は常に太線に なるような設定は基本機能としてはない のですかねぇ... ありがとうございました。

すると、全ての回答が全文表示されます。
  • poko1207
  • ベストアンサー率25% (46/178)
回答No.1

印刷の設定の問題ですね。 タスクバーにある 表示 改ページプレビュー で確認して、改ページしたいところに、青の線をドラック&ドロップで調整すれば、うまく改頁できます。

ayaka_ikeike
質問者

お礼

ご回答ありがとうございます。 説明不足で申し訳ございません。 印刷した時、各頁の最下行の各セルの下の 罫線が自動的に太線にならないものかと 考えています。 現在、改頁される位置の罫線のみ太線に変更し、 行の挿入、削除があった場合には、ご教示 いただいた通り、改頁プレビューにて調整するか、 太線を引きなおすことで対処しています。 しかし印刷した時の枚数が膨大なので、 改頁、もしくは太線を引きなおす数も膨大に なりまして困っていたところです。 1年来の悩みでして、何かいい方法がないものかと 思っておりました。

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

関連するQ&A