| 
    
     |  | 以前こちらの掲示板で教えていただいたのですが、印刷する様式が変更になりコードをいじったのですが改ページがうまくいきません。ユーザーフォームでプリントアウトしたい開始番号・終了番号を入力したらその番号分だけ印刷するようにしたいのですが、1ページに10件ずつ印刷できるはずが、9件までしか印刷されません。しかも、2ページ目は11件から印刷されます。どのように直せばいいか教えてください(>_<) 印刷する様式は下図のような表で、番号が入力されれば他の欄はvLookup関数で入るようになっています。印刷する様式はA1:CI22まで使用しています。その下にコードを入れましたので、どこをどう直せばいいのか教えてください!お願いします(>_<)
 
 ABCDEFGHIJKL・・・・・・・・CI
 |____________
 1|  |   |  |
 2|番号|・・・|・・|・・
 ____________
 3|  |   |  |
 4| 1 |   |  |
 ____________
 5|  |   |  |
 6| 2 |   |  |
 
 ↓  ↓
 ____________
 21|  |   |  |
 22|10|   |  |
 
 
 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''CommandButtonのキャンセルをクリックしたとき                   '
 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 Private Sub Btn_Cancel_Click()
 
 'ユーザーフォームの「印刷」を閉じる
 Me.Hide
 
 End Sub
 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 'CommandButtonのOKをクリックしたとき                      '
 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 Private Sub Btn_Ret_Click()
 
 Worksheets("印刷").Visible = True
 
 'Worksheet印刷(文書収受件名簿様式)の先頭列番号(A列)
 Const IntColStart As Long = 1
 
 'Worksheet印刷(文書収受件名簿様式)の末尾列番号(CI列)
 Const IntColLast As Long = 87
 
 'Worksheet印刷(文書収受件名簿様式)の1つのデータが使用する行数
 Const Cnt As Long = 2
 
 'Worksheet印刷(文書収受件名簿様式)1ページあたりの受付番号数
 Const CntNo As Long = 10
 
 'Worksheet印刷 (文書収受件名簿様式)の開始行
 Const Int_Fst As Long = 1
 
 'Worksheet印刷(文書収受件名簿様式)の受付番号の書き出し列番号
 Const IntNoCol As Long = 1
 
 ''Worksheet印刷(文書収受件名簿様式)の受付番号の書き出し行番号(データ1番号分内での)
 Const IntNoRow As Long = 3
 
 Dim IntStartId As Long, IntStartRow As Long
 
 Dim IntLastId As Long, IntLastRow As Long
 
 Dim i, J As Long
 
 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 'テキストボックスの入力エラー確認                         '
 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 
 'Txt_StartId(開始番号)が未記入の場合、メッセージボックス「開始位置を入力してから実行してください」が現れる
 If Me.Txt_StartId = "" Then
 MsgBox "開始位置を入力してから実行して下さい。", vbExclamation, "開始位置未記入"
 Me.Txt_StartId.SetFocus
 Exit Sub
 End If
 
 'Txt_StartId(開始番号)がOの場合、メッセージボックス「開始位置の入力形式に誤りがあります」が現れる
 IntStartId = Str_Chk(Me.Txt_StartId)
 If IntStartId = 0 Then
 MsgBox "開始位置の入力形式に誤りがあります。", vbExclamation, "開始位置エラー"
 Me.Txt_StartId.SetFocus
 Exit Sub
 End If
 
 'Txt_Txt_LastId(終了番号)が未記入の場合、メッセージボックス「終了位置を入力してから実行してください」が現れる
 If Me.Txt_Txt_LastId = "" Then
 MsgBox "終了位置を入力してから実行して下さい。", vbExclamation, "終了位置未記入"
 Me.Txt_Txt_LastId.SetFocus
 Exit Sub
 End If
 
 'Txt_Txt_LastId(終了番号)が0の場合、メッセージボックス「終了位置の入力形式に誤りがあります」が現れる
 IntLastId = Str_Chk(Me.Txt_Txt_LastId)
 If Str_Chk(Me.Txt_Txt_LastId) = 0 Then
 MsgBox "終了位置の入力形式に誤りがあります。", vbExclamation, "終了位置エラー"
 Me.Txt_Txt_LastId.SetFocus
 Exit Sub
 End If
 
 'Txt_StartId(開始番号)とTxt_Txt_LastId(終了番号)の数字が等しいとき、メッセージボックス「終了位置が開始位置と等しいため実行できません。」が現れる
 If IntStartId = IntLastId Then
 MsgBox "終了位置が開始位置と等しいため実行できません。", vbExclamation, "終了位置エラー"
 Me.Txt_Txt_LastId.SetFocus
 Exit Sub
 End If
 
 'Txt_StartId(開始番号)の数字がTxt_Txt_LastId(終了番号)より大きいとき、メッセージボックス「終了位置が開始位置より手前なため実行できません。」が現れる
 If IntStartId > IntLastId Then
 MsgBox "終了位置が開始位置より手前なため実行できません", vbExclamation, "終了位置エラー"
 Me.Txt_Txt_LastId.SetFocus
 Exit Sub
 End If
 
 
 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 ' 開始行,終了行の設定                               '
 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 
 Me.Hide
 ViewSet = ActiveWindow.View
 ActiveWindow.View = xlNormalView
 
 
 With ThisWorkbook.Sheets("印刷")
 
 ' 一旦印刷範囲の設定を初期化
 '===================================================================================
 .PageSetup.PrintArea = ""
 
 ' 一旦改ページを初期化
 '===================================================================================
 .Cells.PageBreak = xlPageBreakNone
 
 
 ' 改ページの設定 (6項目毎でページを別ける)
 '===================================================================================
 .Columns(IntColLast + 1).PageBreak = xlPageBreakManual
 .Cells(Cnt * CntNo + 3, IntColStart).PageBreak = xlPageBreakManual
 
 
 ' 印刷範囲の設定
 '===================================================================================
 .PageSetup.PrintArea = .Cells(Int_Fst, IntColStart).Address & _
 ":" & .Cells(Cnt * CntNo, IntColLast).Address
 
 
 '受付番号の書き出し + 印刷
 '===================================================================================
 J = 1
 For i = IntStartId To IntLastId Step 1
 .Cells((J - 1) * Cnt + IntNoRow, IntNoCol) = i
 J = J + 1
 If J = 11 Then
 .PrintOut
 For J = 1 To 10
 .Cells((J - 1) * Cnt + IntNoRow, IntNoCol).Value = ""
 Next
 J = 1
 End If
 Next
 
 If J <> 1 Then
 .PrintOut
 End If
 
 End With
 
 
 Worksheets("印刷").Visible = False
 
 End Sub
 
 
 Function Str_Chk(StrTmp)
 On Error Resume Next
 Buf = CInt(StrTmp)
 If Err Then
 Buf = 0
 Err.Clear
 End If
 Str_Chk = Buf
 End Function
 
 
 Private Sub UserForm_Click()
 
 End Sub
 
 |  |