[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『条件に合ったシートの複数印刷について』(紫苑)
はじめまして。
ユーザーフォームを使用して、自動で同じシートを複数印刷するマクロは機能しているのですが、そこにAのときには印刷シート1を複数印刷、Bのときにはシート2を複数印刷という機能を追加したいと考えています。
印刷設定というシートに項目(担当者・連絡先など)をExcelで表示しており、印刷したい内容により、どのシートを印刷するかをA列で判定出来るようになっています。
その判定結果に基づき、vlookupで差し込みしている別シート(sheet5、Sheet6)に印刷設定に入力された情報は表示されています。
それぞれのsheet のS2に印刷番号 T2に印刷枚数が表示されます。
Dim 番号 As Integer
UF1 = S1. Value UF1 = E1 . Value
For 番号 S1 to E1
Sheets("sheets5"). Range("S2").Value = 番号 Sheets("sheets5"). Range("S2").Value.PrintOut Copies:= Sheets("Sheets5").Range("T2").Value
Next 番号
上のマクロではSheet5のみユーザーフォーム(UF1)に入力された番号(s1が開始番号、e1が終了番号)を枚数分印刷することはできている状態でこれに、最初に記載した判定結果のAのときにsheet5を複数印刷、BのときにSheet6を複数印刷出来るようにするための方法を、ご教授願えますでしょうか。
< 使用 Excel:Excel2010、使用 OS:Windows7 >
IF 判定結果="A" then シート5を印刷 Elseif 判定結果="B" then シート6を印刷 End IF
(マナ) 2019/03/17(日) 16:46
返答ありがとうございます。
現状の印刷マクロと組み合わせようとするとうまく反応せず、型が一致しないと言われてしまいます。
追記場所がいけないのかもしれませんが……。
教えていただいたIfと現在の印刷マクロをうまく組み合わせることができないようです。
すみません。
(紫苑) 2019/03/17(日) 17:32
実際に試したコードを、ここにコピー貼付けしていただけませんか。
(マナ) 2019/03/17(日) 19:39
'プリンタ選択ダイアログ Application.Dialogs(xlDialogPrinterSetup).Show
Dim 番号 As Integer
A = S2.Value n = E2.Value
For 番号 = A To n
Sheets(Array("Sheet5,Sheet6,Sheet7,Sheet8,Sheet9")).Range("S2").Value = 番号 Sheets(Array("Sheet5,Sheet6,Sheet7,Sheet8,Sheet9")).PrintOut Copies:=Sheets(Array("Sheet5,Sheet6,Sheet7,Sheet8,Sheet9")).Range("T2").Value
Dim 印刷物 As String
Sheets("印刷設定").Range("A6:A100").Value = 印刷物
If 印刷物 = "A" Then Sheet5 を印刷 ElseIf 印刷物 = "B" Then Sheet6 を印刷 ElseIf 印刷物 = "C" Then Sheet7 を印刷 ElseIf 印刷物 = "D" Then Sheet8 を印刷 ElseIf 印刷物 = "E" Then Sheet9 を印刷
End If
Next 番号
Unload Me
End Sub
こちらでコンパイルエラーとなってしまいました。
(紫苑) 2019/03/18(月) 11:43
印刷物とは、何でしょうか。
>Sheets("印刷設定").Range("A6:A100").Value = 印刷物
この行は、何をしたいのでしょうか。
(マナ) 2019/03/18(月) 18:34
印刷設定のシートに判定結果(印刷物)が出ているので、その結果に合わせてAの時にSheet5を複数印刷したいのです。
また結果がBの時にはSheet6を…というのを追加したいと考えています。
(紫苑) 2019/03/18(月) 19:32
この行は、何をしたいのでしょうか。
(マナ) 2019/03/18(月) 19:39
(マナ) 2019/03/19(火) 18:24
判定結果 印刷番号 印刷枚数
A 1 5
A 2 4
A 3 6
B 4 4
B 5 6
C 6 3
E 7 4
このようなイメージです。
マナさんのおっしゃる通り、仮にA列全ての判定結果がAの時にはシート5を印刷したいのでが印刷枚数も毎回変動します。
印刷枚数は印刷したいシートの同じセルT2にvlookupで表示するようにしています。
印刷番号は印刷したいシートのセルS2に表示されます。
シートの判別をしないで組んだものは以下のマクロが動き、印刷番号1を5枚印刷することはできます。
印刷番号2は4枚…と指定した番号の印刷枚数を印刷します。
Private Sub 印刷実行2_Click()
'プリンタ選択ダイアログ Application.Dialogs(xlDialogPrinterSetup).Show Dim 番号 As Integer A = S2.Value n = E2.Value For 番号 = A To n Sheets("Sheet5").Range("S2").Value = 番号 Sheets("Sheet5").PrintOut Copies:=Sheets("Sheet5").Range("T2").Value
Next 番号 Unload Me End Sub (紫苑) 2019/03/20(水) 10:28
Option Explicit
Sub test() Dim c As Range Dim shn As String
For Each c In Sheets("印刷設定").Range("A6:A100") If c.Value = "" Then Exit For
Select Case c.Value Case "A": shn = "Sheet5" Case "B": shn = "Sheet6" Case "C": shn = "Sheet7" Case "D": shn = "Sheet8" Case "E": shn = "Sheet9" End Select
With Sheets(shn) .Range("S2").Value = c.Offset(, 1).Value .PrintOut Copies:=c.Offset(, 2).Value End With Next
End Sub
(マナ) 2019/03/20(水) 19:51
の部分で
実行時エラー'1004'
WorksheetクラスのPrintOutメソッドが失敗しました。
となってしまいました。
印刷したいシートは非表示ではないのですが。。
(紫苑) 2019/03/21(木) 10:02
(マナ) 2019/03/21(木) 10:46
きちんと印刷できました。
ながながとお付き合いいただいありがとうございました。
感謝、感謝です。
(紫苑) 2019/03/21(木) 11:32
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.