- ベストアンサー
VBによる改頁行の罫線変更
EXCELで外枠は太線、各行の区切り線は細線を 使用した表を作っています。 これがかなり大きな表ですので、印刷すると かなりの枚数になるんですが、各ページの最終行 (下の枠線)は当然細線になって、上、右、左の 太い枠線とのバランスが悪くなってしまいます。 改頁される行の区切り線のみ手作業で 太線に変更していってもいいのですが、 行を挿入した時とか行の高さを変更したときに ズレてしまって大変です。 改頁行の罫線のみ太線に変更するような VBを作成することは可能でしょうか? ご教示いただけましたら有り難いです。 よろしくお願い致します。
- みんなの回答 (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
その他の回答 (2)
- skink
- ベストアンサー率38% (7/18)
こんにちは。 可能です。 #1さんとほぼ同じです。 私はVBAではなくVB6.0からEXCELの印刷をしていますが、今試してみたらちゃんと引けました。 改ページの計算を印刷前に行っているなら、そこで引いたら楽かと思います。
お礼
ご回答ありがとうございます。 No.1でいただいたご回答と併せて参考に させていただきます
- imogasi
- ベストアンサー率27% (4737/17069)
エクセルVBAでは印刷実行はPrintOut(範囲)を使うと思いますが, その「範囲」のA○:J□の□のところのついて(Jは仮の例) たとえば1:50,51:100,101:150のように印刷するデータ行数を毎回(内容にかかわらず)決めてしまえば、こちらでその行(□)の下線を太線に一時的に変えて印刷し、その後細線に戻すのをページ数だけ繰り返せばよいと思います。 最下行数から計算し、最後のページにはこれを行わない工夫も必要です。 印刷する前にイベントとして知らせてくれたり、設定1つで質問のようには できないと思います。
お礼
ご回答ありがとうございます。 EXCELの基本機能としてあってもいいような 機能だと思うのですが、見つからないので、 VBAで作ろうと思っています。 参考にさせていただきます。 ありがとうございました。
お礼
ご回答ありがとうございました。 参考にさせていただきます。