プロが教えるわが家の防犯対策術!

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

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

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

改頁行の罫線のみ太線に変更するような
VBを作成することは可能でしょうか?

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

A 回答 (3件)

以下のような処理を行えば2ページ目以降の先頭行が取得できます。


取得できた値から、ページ内最終行(取得先頭行-1)の下に太線の罫線を
引けばいいと思います。
処理的には改ページ数に比例して処理が重くなるので、旧処理と一時的に
下記のような処理を組み込んだ場合で、応答性等比較してみてください。

Sub test()

Dim objWs As Excel.Worksheet
Dim objHPBreak As Excel.HPageBreak

Set objWs = ActiveSheet

'データ最終行以降にアクティブセルを移動する必要あり
objWs.Range("a1").SpecialCells(xlCellTypeLastCell).Select

For Each objHPBreak In objWs.HPageBreaks

Debug.Print objHPBreak.Location.Row

Next objHPBreak

Set objHPBreak = Nothing
Set objWs = Nothing

End Sub
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
参考にさせていただきます。

お礼日時:2005/09/11 12:57

こんにちは。



可能です。
#1さんとほぼ同じです。

私はVBAではなくVB6.0からEXCELの印刷をしていますが、今試してみたらちゃんと引けました。
改ページの計算を印刷前に行っているなら、そこで引いたら楽かと思います。

参考URL:http://www.bcap.co.jp/hanafusa/VBHLP/excel06.htm
    • good
    • 0
この回答へのお礼

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

No.1でいただいたご回答と併せて参考に
させていただきます

お礼日時:2005/09/07 00:28

エクセルVBAでは印刷実行はPrintOut(範囲)を使うと思いますが,


その「範囲」のA○:J□の□のところのついて(Jは仮の例)
たとえば1:50,51:100,101:150のように印刷するデータ行数を毎回(内容にかかわらず)決めてしまえば、こちらでその行(□)の下線を太線に一時的に変えて印刷し、その後細線に戻すのをページ数だけ繰り返せばよいと思います。
最下行数から計算し、最後のページにはこれを行わない工夫も必要です。
印刷する前にイベントとして知らせてくれたり、設定1つで質問のようには
できないと思います。
    • good
    • 0
この回答へのお礼

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

EXCELの基本機能としてあってもいいような
機能だと思うのですが、見つからないので、
VBAで作ろうと思っています。

参考にさせていただきます。
ありがとうございました。

お礼日時:2005/09/07 00:25

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