Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


2745 / 13646 ツリー ←次へ | 前へ→

【66250】改ページでの罫線 とと 10/8/12(木) 14:03 質問[未読]
【66254】Re:改ページでの罫線 かみちゃん 10/8/12(木) 15:42 発言[未読]
【66256】Re:改ページでの罫線 とと 10/8/12(木) 16:20 お礼[未読]

【66250】改ページでの罫線
質問  とと  - 10/8/12(木) 14:03 -

引用なし
パスワード
   いろいろ検索をして考えましたが、つまづきました。
ご教示ください。

改ページでの罫線を実行するマクロです。

Sub PrintLine()
Dim C As Long
Dim myR As Long

With Worksheets(3)

For C = 1 To .HPageBreaks.Count
myR = .HPageBreaks(C).Location.row - 1
With .Range(.Cells(myR, 1), .Cells(myR, 7)).Borders(xlEdgeBottom)
.lineStyle = xlContinuous
.Weight = xlThin
End With
  
With .Range(.Cells(myR + 1, 1), .Cells(myR + 1, 7)).Borders(xlEdgeTop)
.lineStyle = xlContinuous
.Weight = xlThin
End With
     
Next C

End With

End Sub


myR = .HPageBreaks(C).Location.row - 1のところでエラー9「インデックスが有効範囲にありません。」と言うエラーが発生します。
しかし、印刷プレビューを見ると2ページ目までは罫線が引かれており、3ページ目以降には罫線が引かれていません。

このマクロを実行する前に別のマクロで書類を作成しています。
列数は7列で固定ですが、行数は書類により可変します。
1ページ33行ですが、見出しに使用している行が4行あります(実質29行)

よろしくおねがいします。

【66254】Re:改ページでの罫線
発言  かみちゃん E-MAIL  - 10/8/12(木) 15:42 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>myR = .HPageBreaks(C).Location.row - 1のところでエラー9「インデックスが有効範囲にありません。」と言うエラーが発生します。

Excelのバージョンによるのかもしれませんが、

HPageBreaks または VPageBreaks.Location 使用時の "インデックスが有効範囲にありません" エラーについて
http://support.microsoft.com/kb/210663/ja
に原因と対処策が載っています。

ちなみに、少し調べてみると、以下のような対処も載っていました。
改ページ位置のセルを画面に表示して、改ページ位置を認識させる必要があります。
次のいずれかの操作を 1 度実行します。
・改ページされているセルを画面に表示
・ZOOM で縮小したあと元に戻す
・印刷プレビューを実行する

ということで、上記URLの対処策か、具体的に、以下のようなコードを追加することで対応できると思います。
 With Worksheets(3)
  With .UsedRange
   Application.Goto .Cells(.Rows.Count, .Columns.Count)
   Application.Goto .Range("A1")
  End With

【66256】Re:改ページでの罫線
お礼  とと  - 10/8/12(木) 16:20 -

引用なし
パスワード
   かみちゃん さま

早速の返信をありがとうございます。

教えていただいたURLに行ってみたら「この現象は弊社にて Excel の問題として確認しています」と書いてありました(汗

対策を1つずつやってみたところ、うまくいかなかったので、かみちゃん さまが提示してくださったコードを付け足したところ、うまくいきました!
本当にありがとうございました!

2745 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free