いつもお世話様です。
こちらで教えていただいたマクロでフッダーの前に自動で罫線を引こうとしています。
前の質問は→http://okweb.jp/kotaeru.php3?q=1310420
下記のマクロを動かすと、1ページだけの時はちゃんとフッダーの上に罫線が引けますが、2ページ目になると「インデックスが有効範囲にありません」という実行時エラーが出てしまいます。
どこがいけないのでしょうか?
Sub 自動罫線TEST()
Dim BreakSu As Integer
Dim BreakSu2 As Integer
Dim B As Integer
Dim Rw As Long
Dim LastRow As Long
For N = 1 To 3
With Cells
.ClearContents
.Borders(xlEdgeTop).LineStyle = xlNone
.Borders(xlEdgeBottom).LineStyle = xlNone
.Borders(xlInsideHorizontal).LineStyle = xlNone
End With
Range("A1:D" & N * 30) = N & N & N 'TESTデータ挿入
LastRow = Range("A65536").End(xlUp).Row '最終行取得
BreakSu = ActiveSheet.HPageBreaks.Count '改ページ数取得
Range(Cells(LastRow + 1, "A"), Cells(LastRow + 100, "A")) = "ABC" '改ページ数を増やすダミー
BreakSu2 = ActiveSheet.HPageBreaks.Count '増えた改ページ数取得
For B = 1 To BreakSu + 1
' MsgBox B & "-" & BreakSu + 1 & "-" & BreakSu2
Rw = ActiveSheet.HPageBreaks(B).Location.Row - 1 '改ページ前行取得(ここでエラー!)
With Range(Cells(Rw, "A"), Cells(Rw, "D")).Borders(xlEdgeBottom) '改ページ前罫線挿入
.LineStyle = xlContinuous
End With
Next B
Range(Cells(LastRow + 1, "A"), Cells(LastRow + 100, "A")) = ClearContents 'ダミー消去
ActiveSheet.PrintPreview
Next
End Sub
No.2ベストアンサー
- 回答日時:
再度こんにちは。
姑息なコードを再アップしながらも納得いかず、
マイクロソフト技術情報を調べてみたところバグみたいですねぇ。
回避策として
追加した範囲の最後のセル(右下)を選択し、
Count,Location等を使用した後、最初のセルを選択
と書いてありましたので下記のようにしたらOKでした。
マイクロソフト、しっかりせんかいっ!(^^;;;
●のコードを追加。
-----------------------------------------------
Range(Cells(LastRow + 1, "A"), Cells(LastRow + 100, "A")) = "ABC"
●Range("A1").SpecialCells(xlCellTypeLastCell).Select
BreakSu2 = ActiveSheet.HPageBreaks.Count
For B = 1 To BreakSu + 1
Rw = ActiveSheet.HPageBreaks(B).Location.Row - 1
With Range(Cells(Rw, "A"), Cells(Rw, "D")).Borders(xlEdgeBottom)
.LineStyle = xlContinuous
End With
Next B
● Range("A1").Select
Range(Cells(LastRow + 1, "A"), Cells(LastRow + 100, "A")).ClearContents ' = ClearContents
ActiveSheet.PrintPreview
Next
End Sub
---------------------------------------------
下記マイクロソフトサイトも覗くこと!
以上です。
参考URL:http://support.microsoft.com/default.aspx?scid=k …
何度もありがとうございます!!!!
マイクロソフトのサイト見ました。
バグだったんですかあ・・・・。
でも、この回避方法だと、Application.ScreenUpdating = False を使ってはいけないと書いてました。
質問に書いたコードはテスト用ですが本番は画面が動かないようにApplication.ScreenUpdating = Falseを入れるつもりだったんです。
でNo1で教えていただいた
ActiveWindow.View = xlPageBreakPreview '改ページプレビュー
ではそんな制限はないですよね?(実験しましたが大丈夫のようでした)
No.1
- 回答日時:
こんにちは。
では下記のように、●のコードを追加してみてください。
-------------------------------------------------
Range(Cells(LastRow + 1, "A"), Cells(LastRow + 100, "A")) = "ABC"
●ActiveWindow.View = xlPageBreakPreview '改ページプレビュー
BreakSu2 = ActiveSheet.HPageBreaks.Count
For B = 1 To BreakSu + 1
' MsgBox B & "-" & BreakSu + 1 & "-" & BreakSu2
Rw = ActiveSheet.HPageBreaks(B).Location.Row - 1
With Range(Cells(Rw, "A"), Cells(Rw, "D")).Borders(xlEdgeBottom)
.LineStyle = xlContinuous
End With
Next B
● ActiveWindow.View = xlNormalView '改ページから標準へ
Range(Cells(LastRow + 1, "A"), Cells(LastRow + 100, "A")) = ClearContents
ActiveSheet.PrintPreview
Next
End Sub
-------------------------------------------
改ページプレビューを表示して強制的に改ページ位置を取得しています。
以上です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA 罫線について B列3行目から21行毎にデータがはいります。 データがはいったらデータが入った 6 2022/11/15 17:22
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
- Excel(エクセル) マクロで最終行から上に検索を逆にしたい 1 2022/05/17 18:27
- Visual Basic(VBA) 数字が「0」の列を削除するため、下記のコードを実行しましたが、コンパイルエラーSubまたはFunct 3 2022/12/04 00:00
- Visual Basic(VBA) ローマ字、ハイフン付きの並び替え ローマ字抽出方法 Excelマクロ 4 2022/04/01 14:10
- Visual Basic(VBA) ワークシート内を検索 1 2022/12/19 23:46
- Visual Basic(VBA) ExcelVBAのマクロについて。 9 2022/05/04 14:50
- Visual Basic(VBA) 追記する列を増やしたい 2つのデータを検索・照合して元データにないデータを下記マクロで商品名を追記し 9 2022/10/05 10:50
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Excel(エクセル) EXCEL マクロで行を挿入して貼り付けようとするとエラーになる。 2 2022/05/24 09:43
このQ&Aを見た人はこんなQ&Aも見ています
-
賃貸で可能な古民家風レトロな部屋作りのコツ!改めて知る畳の高い機能性と魅力も紹介
畳の部屋を雰囲気のよい部屋に仕上げたい!賃貸住宅でもできる古民家風のレトロな部屋作りのコツを伺った。
-
vba 改ページカウントで不可解なエラーを回避したいのですが教えてください
Excel(エクセル)
-
Excel 改ページのVBAうまくいかないです
Excel(エクセル)
-
VBAでページ番号、ページ最終行を取得する方法
その他(プログラミング・Web制作)
-
-
4
EXCEL、マクロ-改ページ行番号の取得方法を教えてください
Visual Basic(VBA)
-
5
ExcelVBA Range クラスの PageBreak プロパティを設定できません。
Visual Basic(VBA)
-
6
Chr(13)とChr(10)の違いは?
PowerPoint(パワーポイント)
-
7
ExcelVBA 改ページの横破線を消す方法
Excel(エクセル)
-
8
数値に見えるものはすべて数値として並べ替えを行う
Excel(エクセル)
-
9
特定のPCだけ動作しないVBAマクロがあります。その理由は?
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Wordのページ罫線(囲み)の下...
-
エクセルの罫線がパワポに貼り...
-
A4用紙を8分割したい
-
印刷ページが急に数100ページに...
-
Excelにて、ページ毎の外枠に罫...
-
wordの飾り枠が印刷出来ない
-
Excel で改ページをしたところ...
-
excel印刷で改頁をする時に罫線...
-
ワード文章の印刷で罫線は印刷...
-
EXCELの罫線をもっと細くしたい...
-
エクセルで表に書いた黒の罫線...
-
エクセルで罫線の太さを変えて...
-
【word】印刷レイアウトでグレ...
-
印刷時、改ページごとの下枠に...
-
エクセルで結合したセルに罫線...
-
ワード文書の枠線をどうしたら...
-
office2016ワード内に表を作成...
-
ワードで罫線が印刷されない
-
ダッシュ―― の打ち方
-
エクセルファイルを印刷すると...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルの罫線がパワポに貼り...
-
A4用紙を8分割したい
-
印刷ページが急に数100ページに...
-
Excelにて、ページ毎の外枠に罫...
-
Excel で改ページをしたところ...
-
エクセル 突然「点線」?が出...
-
エクセルで表に書いた黒の罫線...
-
EXCELの罫線をもっと細くしたい...
-
エクセルファイルを印刷すると...
-
wordで1ページに同じ文章を4つ...
-
エクセルで罫線の太さを変えて...
-
[Excel]画面上で表示されても、...
-
excel印刷で改頁をする時に罫線...
-
【word】印刷レイアウトでグレ...
-
Word差し込み印刷 ラベルの枠を...
-
印刷時、改ページごとの下枠に...
-
accessのレポートを20行固定に...
-
エクセルで 2ページ目の罫線...
-
エクセルで結合したセルに罫線...
-
Excel 2007印刷で上の頁の線が出る
おすすめ情報