アプリ版:「スタンプのみでお礼する」機能のリリースについて

EXCELで外枠は太線、各行の区切り線は細線を
使用した表を作っています。

これがかなり大きな表ですので、印刷すると
かなりの枚数になるんですが、各ページの最終行
(下の枠線)は当然細線になって、上、右、左の
太い枠線とのバランスが悪くなってしまいます。

改頁される行の区切り線のみ太線に変更していって
もいいのですが、行を挿入した時とか行の高さを
変更したときにズレてしまって大変です。

印刷した時に自動的に改頁される行のみ太線に
なるような機能はないのでしょうか?
もしくはVBA等でそのような機能を作成することは
可能でしょうか?

ご教示いただけましたら有り難いです。
よろしくお願い致します。

A 回答 (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列分に太い罫線を設定します。
実際に使うにはもう一工夫必要でしょう。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

ご教示いただいたコードに一部手を加えるかたちで、
当初考えていた以上のものができました。

本当に助かりました。ありがとうございます!

お礼日時:2005/09/03 23:20

こんにちは。



ちょっと確認したいのですが、

------------------------------ ←細線
------------------------------ ←細線
------------------------------ ←細線
     ・
     ・
------------------------------ ←細線
--------------- ←太線(改ページ)
------------------------------ ←細線
------------------------------ ←細線

その部分を変更するのですね。
つまり、ずっと繋がっているということなのでしょうか?

こんなマクロコードを考えてみました。

設定の方法:
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
    • good
    • 0
この回答へのお礼

詳しいご回答ありがとうございます。

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

お礼日時:2005/09/03 23:17

表の1行目に何も入れない行を作り、その上下に太い罫線を引きます。


ファイル→ページ設定の「シート」タブの 「印刷タイトル」「行のタイトル」に、この1行目を設定すればどうでしょうか?
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

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

ありがとうございました。

お礼日時:2005/09/03 14:01

印刷の設定の問題ですね。


タスクバーにある
表示
改ページプレビュー
で確認して、改ページしたいところに、青の線をドラック&ドロップで調整すれば、うまく改頁できます。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

説明不足で申し訳ございません。
印刷した時、各頁の最下行の各セルの下の
罫線が自動的に太線にならないものかと
考えています。

現在、改頁される位置の罫線のみ太線に変更し、
行の挿入、削除があった場合には、ご教示
いただいた通り、改頁プレビューにて調整するか、
太線を引きなおすことで対処しています。
しかし印刷した時の枚数が膨大なので、
改頁、もしくは太線を引きなおす数も膨大に
なりまして困っていたところです。

1年来の悩みでして、何かいい方法がないものかと
思っておりました。

お礼日時:2005/09/03 13:52

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています