|
moomoo さん、こんばんわ。
>Ver3の#6241のツリーを読みたいのですが、何か方法はないでしょうか。
>題名は「nページ目の最初の行の取得」です。
>3年ほど前に私が立てたツリーですが、現在では検索してもエラーになってしまいます。
テキストで保存したログです。
データ未整理のためツリー関連らしき部分を探しました。
======================================================================
【6241】nページ目の最初の行の取得
moomoo - 01/12/7(金) 19:06 -
-------------------------------------------------------------------------
こんにちは。moomooと申します。ここの方には何度も質問に応えていただいて
感謝しております。
現在、nページ目の最初の行を取得するマクロを組んでいます。
A列にデータが300ほどで、約50行で1ページ、6ページまであります。
Sub ページ()
Dim pp As Integer
Dim n As Long
pp = ActiveSheet.HPageBreaks.Count
If pp =0 Then
Exit Sub
End If
For p = 1 To pp
n = p
Cells(p, 3) = ActiveSheet.HPageBreaks(n).Location.Row
Next p
End Sub
というマクロの場合、C1には51が返されますが、直後「インデックスが
有効範囲にありません」とのメッセージがでて止まってしまいます。
Range("C1")= ActiveSheet.HPageBreaks(1).Location.Row
Range("C2") = ActiveSheet.HPageBreaks(2).Location.Row
とした場合も、C1はうまく行きますが、エラーのためC2のところで
止まってしまいます。
ページの開始行を取得する方法として根本的に間違っているのか、
解決方法があるのか教えていただけないでしょうか
======================================================================
【6270】Re:nページ目の最初の行の取得
あきら - 01/12/11(火) 22:18 -
----------------------------------------------------------------------
こんにちは。
▼moomooさん:
>ページの開始行を取得する方法として根本的に間違っているのか、
>解決方法があるのか教えていただけないでしょうか
なかなかレスがつかないようですが、PageBreakはプリンター
ドライバーがらみのせいか、とても挙動不審なところがあって
答えにくい質問なのだろうと思います。
PageBreakの取得や変更はプレビュー画面の状態でやると
エラーが避けられるようです。
Application.ScreenUpdating = False
ActiveWindow.View = xlPageBreakPreview
With ActiveSheet
MsgBox .HPageBreaks(1).Location.Row
MsgBox .HPageBreaks(2).Location.Row
MsgBox .HPageBreaks(3).Location.Row
End With
ActiveWindow.View = xlNormalView
Application.ScreenUpdating = True
これでどうですか?
======================================================================
【6286】Re:nページ目の最初の行の取得
moomoo - 01/12/13(木) 9:28 -
----------------------------------------------------------------------
▼あきらさん:
レスありがとうございました。
改ページプレビュー画面にしたところうまく行きました。
その他
ActiveCell.SpecialCells(xlLastCell).Select
で最終行最終列のセルを選択しておくとうまく行くようです。
======================================================================
|
|