Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


58883 / 76738 ←次へ | 前へ→

【22576】Re:ユーザーフォームから印刷を実行
発言  kazu  - 05/2/24(木) 9:37 -

引用なし
パスワード
   ▼satoko さん:
おはようございます。

追加1.にてレスの内容を入れてみました。
確認してみて下さい。


受け付け番号が入っていくところが違う様なら
Const IntNoRow As Long = 2  ← 2を適切な値に変更して下さい。

解らない事があれば聞いて下さい。解る範囲でお答えします。


Private Sub Btn_Cancel_Click()
Me.Hide
End Sub

Private Sub Btn_Ret_Click()

'帳票の先頭列番号
Const IntColStart As Long = 1
'帳票の末尾列番号
Const IntColLast As Long = 8
'帳票1番号分の行数
Const Cnt As Long = 5
'1ページ当りの受け付け番号数
Const CntNo As Long = 6

'受け付け番号書き出し列番号
Const IntNoCol As Long = 1
'受け付け番号書き出し行位置(帳票1番号分内での)
Const IntNoRow As Long = 2

Dim IntStartId As Long, IntStartRow As Long

Dim IntLastId As Long, IntLastRow As Long

Dim i As Long, j As Long
  
'テキストボックスの入力エラー確認
'===================================================================================
  If Me.Txt_StartId = "" Then       'Txt_StartIdが空白の場合
    MsgBox "開始位置を入力してから実行して下さい。", vbExclamation, "開始位置未記入"
    Me.Txt_StartId.SetFocus
    Exit Sub
  End If

  IntStartId = Str_Chk(Me.Txt_StartId)   '


  If IntStartId = 0 Then          'Txt_StartIdが数値に変換出来ない値だった場合
    MsgBox "開始位置の入力形式に誤りがあります。", vbExclamation, "開始位置エラー"
    Me.Txt_StartId.SetFocus
    Exit Sub
  End If    


  If Me.Txt_LastId = "" Then        'Txt_LastIdが空白の場合
    MsgBox "終了位置を入力してから実行して下さい。", vbExclamation, "終了位置未記入"
    Me.Txt_LastId.SetFocus
    Exit Sub
  End If
  
  IntLastId = Str_Chk(Me.Txt_LastId)

  If Str_Chk(Me.Txt_LastId) = 0 Then     'Txt_LastIdが数値に変換出来ない値だった場合
    MsgBox "終了位置の入力形式に誤りがあります。", vbExclamation, "終了位置エラー"
    Me.Txt_LastId.SetFocus
    Exit Sub
  End If

  '追加1.ここから <------  
  If IntStartId = IntLastId Then       'Txt_StartId = Txt_LastIdの場合
    MsgBox "終了位置が開始位置と等しい為実行出来ません。", vbExclamation, "終了位置エラー"
    Me.Txt_LastId.SetFocus
    Exit Sub
  Elseif IntStartId < IntLastId Then     'Txt_StartId < Txt_LastIdの場合
    MsgBox "終了位置が開始位置より手前な為実行出来ません。", vbExclamation, "終了位置エラー"
    Me.Txt_LastId.SetFocus
    Exit Sub
  End If
  ' ------>  ここまで追加1.


' 開始行,終了行の設定
'===================================================================================
  IntStartRow = (IntStartId - 1) * Cnt + 1
  IntLastRow = (IntLastId) * Cnt
  
  ViewSet = ActiveWindow.View
  ActiveWindow.View = xlNormalView
  
  With ThisWorkbook.Sheets("印刷")

  '追加1.ここから <------  
  ' 受付番号の書き出し
  '===================================================================================
    For j = IntStartId To IntLastId
      .Cells((j - 1) * Cnt + IntNoRow , IntNoCol) = j
    Next
  ' ------>  ここまで追加1.

  ' 一旦印刷範囲の設定を初期化
  '===================================================================================
    .PageSetup.PrintArea = ""
  
  ' 一旦改ページを初期化
  '===================================================================================
    .Cells.PageBreak = xlPageBreakNone
    
  ' 印刷範囲の設定
  '===================================================================================
    .PageSetup.PrintArea = .Cells(IntStartRow, IntColStart).Address & ":" & .Cells(IntLastRow, IntColLast).Address
  
  ' 改ページの設定 (6項目毎でページを別ける)
  '===================================================================================
    .Columns(IntColLast + 1).PageBreak = xlPageBreakManual
    i = 1
    Do
      .Cells(i * Cnt * CntNo + IntStartRow , IntColStart).PageBreak = xlPageBreakManual
      i = i + 1
    Loop Until i * Cnt * CntNo + IntStartRow > IntLastRow
    .PrintOut
  End With

  ActiveWindow.View = ViewSet
  
End Sub


Function Str_Chk(StrTmp)
  On Error Resume Next
  Buf = CLng(StrTmp)
  If Err Then
    Buf = 0
    Err.Clear
  End If
  Str_Chk = Buf
End Function

0 hits

【22484】ユーザーフォームから印刷を実行 satoko 05/2/22(火) 18:56 質問
【22503】Re:ユーザーフォームから印刷を実行 kazu 05/2/22(火) 23:26 発言
【22508】Re:ユーザーフォームから印刷を実行 satoko 05/2/23(水) 8:46 質問
【22541】Re:ユーザーフォームから印刷を実行 kazu 05/2/23(水) 15:46 発言
【22575】ユーザーフォームから印刷を実行 satoko 05/2/24(木) 8:56 質問
【22576】Re:ユーザーフォームから印刷を実行 kazu 05/2/24(木) 9:37 発言
【22577】Re:ユーザーフォームから印刷を実行 satoko 05/2/24(木) 10:54 質問
【22578】Re:ユーザーフォームから印刷を実行 kazu 05/2/24(木) 11:56 発言
【22580】ユーザーフォームから印刷を実行 satoko 05/2/24(木) 12:59 質問
【22587】Re:ユーザーフォームから印刷を実行 kazu 05/2/24(木) 13:25 発言
【22604】ユーザーフォームから印刷を実行 satoko 05/2/24(木) 18:37 質問
【22606】Re:ユーザーフォームから印刷を実行 kazu 05/2/24(木) 18:45 発言
【22608】ユーザーフォームから印刷を実行 satoko 05/2/24(木) 19:07 質問
【22609】Re:ユーザーフォームから印刷を実行 kazu 05/2/24(木) 19:14 発言
【22611】Re:ユーザーフォームから印刷を実行 satoko 05/2/24(木) 19:37 質問
【22612】Re:ユーザーフォームから印刷を実行 kazu 05/2/24(木) 19:43 発言
【22614】ユーザーフォームから印刷を実行 satoko 05/2/24(木) 19:56 お礼

58883 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free