|
▼maru さん:
>初歩的な質問で恥ずかしく思いますが、どなたかご教授頂ければ幸いです。
>宜しくお願いします。
>
>実行時に3ページ目で「実行時エラー'9' インデックスが有効範囲にありません。」の
>エラーが発生します。実際の範囲は8ページです。
これかな?
2003でも発生しました。
ht tp://support.microsoft.com/kb/210663/ja
回避策
コードで垂直方向または水平方向改ページの Location プロパティを使用する前に、ワークシートの最後のセルを選択するコードを追加します。
例えば、次のコードを使用して、最後のセルを選択し、Location プロパティを使用してから、最初のアクティブ セルを再度選択します。
いろいろ試しましたが、全部↑のようになりました。
Sub test2()
Dim my_Hpb As Variant
Dim my_Row As Long
Dim i As Long
i = 1
With ActiveSheet
.DisplayAutomaticPageBreaks = True
For Each my_Hpb In .HPageBreaks
If my_Hpb.Extent = xlPageBreakFull Then
my_Row = my_Hpb.Location.Row
.Range("A" & my_Row) = i
i = i + 1
End If
Next
End With
End Sub
Sub test3()
Dim my_Hpb As Long
Dim my_Row As Long
Dim i As Long
With ActiveSheet
.DisplayAutomaticPageBreaks = True
my_Hpb = .HPageBreaks.Count
For i = 1 To my_Hpb
my_Row = ActiveSheet.HPageBreaks(i).Location.Row
.Range("A" & my_Row) = i
Next
End With
End Sub
Sub test()
Dim my_Hpb As Integer
Dim my_Row As Integer
Dim i As Integer
my_Hpb = ActiveSheet.HPageBreaks.Count
For i = 1 To my_Hpb - 1
my_Row = ActiveSheet.HPageBreaks(i).Location.Row
ActiveSheet.Range("A" & my_Row) = 1
Next
End Sub
Sub test4()
Dim hpbcnt As Long
Dim 改ページ行 As Long
Dim 改ページ列 As Long
Dim 改ページ行列 As Variant
With ActiveSheet
hpbcnt = .HPageBreaks.Count
For i = 1 To hpbcnt
改ページ行 = ActiveSheet.HPageBreaks(i).Location.Row
改ページ列 = ActiveSheet.HPageBreaks(i).Location.Column
改ページ行列 = ActiveSheet.HPageBreaks(i).Location.Address
Range(改ページ行列).Interior.ColorIndex = 3
Next
End With
End Sub
|
|