ありがとうございます。
レポート上には
「=Int(([番号]/6)+0.9) & "頁/" & Int((Count([ビル名])/6)+0.9) & "頁中"」
というテキストボックスがあるのですが、多分それだとうまく作動しないのでは、と思い
「=[Pages]」
という非可視のテキストボックスを作りました。
コードに関しては、現状のコードに追加する形で
Option Compare Database
Option Explicit
'Dim d As Object ' Dictionary オブジェクト用変数
Const A4Height As Long = 21 * 567 'A4用紙の高さ=29.7cm、横の場合=21.0cm、1cm=567twips
Dim PageHeight As Long
Dim h() As Long '印刷時拡張後の高さを格納する配列
'開くとき
Private Sub Report_Open(Cancel As Integer)
' Set d = CreateObject("Scripting.Dictionary")
'印刷可能領域下辺のページ上端からの高さを取得
On Error Resume Next
PageHeight = A4Height - Me.Printer.BottomMargin
PageHeight = PageHeight - Me.Section(acPageFooter).Height
ReDim h(1 To Me.Recordset.RecordCount) '配列のサイズをレコード数分に設定
End Sub
Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)
Dim j As Integer
Dim i As Integer
For j = 51 To 57
Me.DrawStyle = 0
Me.Line (Me("L" & j).Left, 0)-(Me("L" & j).Left, 144000)
Next
For i = 2 To 12
Me.DrawStyle = 2
Me.Line (Me("L" & i).Left, 0)-(Me("L" & i).Left, 144000)
Next
WordWrapOff Me.NAS用, Me.txtFld1
Me.NAS用.FELineBreak = False
Me.txtFld1.FELineBreak = False
If Me.Pages = 0 Then 'ダミーのフォーマット時はPages=0
h(Me.CurrentRecord) = Me.詳細.Height
Else
Dim exHeight As Long
exHeight = h(Me.CurrentRecord)
'exHeightに拡張後の高さが格納されているのでそれを利用してレイアウトを設定
End If
End Sub
としました。(最後のEnd Ifは対応するIfがない、としてエラーになったため削りました)
しかし、「h(Me.CurrentRecord) = Me.詳細.Height」のところで「インデックスが有効範囲にない」と言われて見ることが出来ませんでした。
何か他に直さなくてはいけないところがあるのでしょうか?
よろしくお願いします。