過去ログ

                                Page     882
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼連続印刷  google 03/3/15(土) 9:58
   ┗Re:連続印刷  りん 03/3/15(土) 17:42
      ┗Re:連続印刷  google 03/3/16(日) 23:36
         ┗Re:連続印刷  google 03/3/17(月) 10:02
            ┗追加報告  google 03/3/17(月) 12:54

 ───────────────────────────────────────
 ■題名 : 連続印刷
 ■名前 : google
 ■日付 : 03/3/15(土) 9:58
 -------------------------------------------------------------------------
   VBAを使って連続印刷マクロを書いているのですが、うまく動作せず困っています。
シートは3つで、「入力」(リストに入力するシート)、「明細」(明細表でセルの結合があります)、「印刷」(このシートに「入力」で記入した内容と「明細」の表を転記して連続印刷させたいと考えています)。
以下のように記述してみましたが、明細シートの転記の部分がうまく動作しません。
変数への代入の位置がおかしいような気がするのですが・・・。
リストは一行ずつ入力ですが、明細表は10行で一つのまとまりとなっています。

Sub 連続印刷()
  Dim myRow As Integer
  Dim primyRow As Integer
  Dim a  As String
  Dim b As String
  Dim c As String    
  '変数への代入部分
  Worksheets("入力").Select
  myRow = 2
  a = Cells(myRow, 1).Value
  b = Cells(myRow, 2).Value
  c = Cells(myRow, 3).Value
  Worksheets("明細").Select
  primyRow = 2
  'A列が空欄になるまでの繰り返し
  Do Until a = ""
    '転記開始
    Worksheets("印刷").Range("ae3").Value = a
    Worksheets("印刷").Range("ae5").Value = b
    Worksheets("印刷").Range("k10").Value = c
    '明細部分の転記
    Worksheets("明細").Range(Cells(primyRow, 3), Cells(primyRow + 9,  11)).Copy _
    Destination:=Worksheets("印刷").Range("b15")
             
    '印刷
    Sheets("印刷").Select
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
    
    '変数に代入した内容更新
      Worksheets("入力").Select
      myRow = myRow + 1
      a = Cells(myRow, 1).Value
      b = Cells(myRow, 2).Value
      c = Cells(myRow, 3).Value
    
      Worksheets("明細").Select
      primyRow = primyRow + 10
    Loop
    
End Sub

恐縮ですが、アドバイスお願いいたします。
 ───────────────────────────────────────  ■題名 : Re:連続印刷  ■名前 : りん <rin_doggie@hotmail.com>  ■日付 : 03/3/15(土) 17:42  -------------------------------------------------------------------------
   google さん、こんにちわ。

>VBAを使って連続印刷マクロを書いているのですが、うまく動作せず困っています。
>シートは3つで、「入力」(リストに入力するシート)、「明細」(明細表でセルの結合があります)、「印刷」(このシートに「入力」で記入した内容と「明細」の表を転記して連続印刷させたいと考えています)。

Sub 連続印刷()
  Dim primyRow As Integer, myRow As Integer
  Dim a As String
  '変数への代入部分
  myRow = 2
  primyRow = 2
  '
  'A列が空欄になるまでの繰り返し
  Do
   a = Trim(Worksheets("入力").Cells(myRow, 1).Value)
   If a = "" Then Exit Do
   '転記開始
   '明細部分の転記
   With Worksheets("明細")
     .Range(.Cells(primyRow, 3), .Cells(primyRow + 9, 11)).Copy _
        Destination:=Worksheets("印刷").Range("b15")
   End With
   'その他転記
   With Worksheets("印刷")
     .Range("ae3").Value = a
     .Range("ae5").Value = Worksheets("入力").Cells(myRow, 2).Value
     .Range("k10").Value = Worksheets("入力").Cells(myRow, 3).Value
     '//Print
     '.PrintOut Copies:=1, Collate:=True
     .PrintPreview 'For Test
   End With
   '次へ
   myRow = myRow + 1
   primyRow = primyRow + 10
  Loop
  '
  MsgBox "End", vbInformation
End Sub

こんな感じです。
 ───────────────────────────────────────  ■題名 : Re:連続印刷  ■名前 : google  ■日付 : 03/3/16(日) 23:36  -------------------------------------------------------------------------
   返信が遅れ大変申し訳ありませんでした。
ご教示いただいたとおり修正したところ無事に動作いたしました。
まことにありがとうございました!
 ───────────────────────────────────────  ■題名 : Re:連続印刷  ■名前 : google  ■日付 : 03/3/17(月) 10:02  -------------------------------------------------------------------------
   追加でおたずねいたします。

印刷シート状にコントロールのチェックボックスを配置して、
入力シートの内容により、オンオフさせて連続印刷させようとしています。
以下のように記述しています。
しかし、入力シートの最初のレコードでチェックボックスをオン、
次のレコードではオフで印刷したいのですが、オンのまま印刷されていまい
困っています。
デバックのステップインで実行するときちんとオンオフの分岐が実行されているのですが、マクロで実行すると動作しません。
過去ログにてチェックボックスをリセットするコードを見つけ試してみましたが、
変化はありませんでした。
マクロで実行する点に問題があるのでしょうか?
何度も申し訳ございませんが、アドバイス願います。

Sub 連続印刷()

  Dim myRow As Integer
  Dim primyRow As Integer
  Dim a  As String
  Dim h As String

    myRow = 2
    primyRow = 2

    Do

    a = Trim(Worksheets("入力").Cells(myRow, 1).Value)
    h = Trim(Worksheets("入力").Cells(myRow, 8).Value)
    'A列が空欄になるまでの繰り返し
    If a = "" Then Exit Do
    With Worksheets("明細")
     .Range(.Cells(primyRow, 3), .Cells(primyRow + 9, 40)).Copy _
        Destination:=Worksheets("印刷").Range("b15")
    End With
    '転記開始
    With Worksheets("印刷")
    .Range("ae3").Value = a

  'チェックボックスに関する分岐
    If h = "○" Then
    Worksheets("印刷").CheckBox1.Value = True
    Else
    Worksheets("印刷").CheckBox1.Value = False
    End If

     '//Print とりあえずプレビュー
    '.PrintOut Copies:=1, Collate:=True
    .PrintPreview 'For Test
   End With
        
    '変数に代入した内容更新
    myRow = myRow + 1
    primyRow = primyRow + 10
    
    Loop
    
    MsgBox "End", vbInformation
End Sub
 ───────────────────────────────────────  ■題名 : 追加報告  ■名前 : google  ■日付 : 03/3/17(月) 12:54  -------------------------------------------------------------------------
   マクロを実行して印刷した場合、プレビュー表示した場合には、
チェックボックスの変更(オン・オフ)が反映されていません。
しかしながら、実行後にシート(印刷シート)の内容を確認すると、
きちんとチェックボックスの変更がされています。
記述にどのような誤りがあるのでしょうか?
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 882