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 恐縮ですが、アドバイスお願いいたします。 |
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 '.PrintOut Copies:=1, Collate:=True .PrintPreview 'For Test End With '次へ myRow = myRow + 1 primyRow = primyRow + 10 Loop ' MsgBox "End", vbInformation End Sub こんな感じです。 |
返信が遅れ大変申し訳ありませんでした。 ご教示いただいたとおり修正したところ無事に動作いたしました。 まことにありがとうございました! |
追加でおたずねいたします。 印刷シート状にコントロールのチェックボックスを配置して、 入力シートの内容により、オンオフさせて連続印刷させようとしています。 以下のように記述しています。 しかし、入力シートの最初のレコードでチェックボックスをオン、 次のレコードではオフで印刷したいのですが、オンのまま印刷されていまい 困っています。 デバックのステップインで実行するときちんとオンオフの分岐が実行されているのですが、マクロで実行すると動作しません。 過去ログにてチェックボックスをリセットするコードを見つけ試してみましたが、 変化はありませんでした。 マクロで実行する点に問題があるのでしょうか? 何度も申し訳ございませんが、アドバイス願います。 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 |
マクロを実行して印刷した場合、プレビュー表示した場合には、 チェックボックスの変更(オン・オフ)が反映されていません。 しかしながら、実行後にシート(印刷シート)の内容を確認すると、 きちんとチェックボックスの変更がされています。 記述にどのような誤りがあるのでしょうか? |