[[20190317121741]] 『条件に合ったシートの複数印刷について』(紫苑) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『条件に合ったシートの複数印刷について』(紫苑)

はじめまして。
ユーザーフォームを使用して、自動で同じシートを複数印刷するマクロは機能しているのですが、そこに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


Private Sub 印刷実行2_Click()

  'プリンタ選択ダイアログ
        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


>Dim 印刷物 As String

印刷物とは、何でしょうか。

>Sheets("印刷設定").Range("A6:A100").Value = 印刷物

この行は、何をしたいのでしょうか。

(マナ) 2019/03/18(月) 18:34


判定結果という言葉を印刷物に置き換えました…。

印刷設定のシートに判定結果(印刷物)が出ているので、その結果に合わせてAの時にSheet5を複数印刷したいのです。

また結果がBの時にはSheet6を…というのを追加したいと考えています。
(紫苑) 2019/03/18(月) 19:32


>Sheets("印刷設定").Range("A6:A100").Value = 印刷物

この行は、何をしたいのでしょうか。

(マナ) 2019/03/18(月) 19:39


印刷設定のシートのA列にA〜Eの結果が入力されているので、印刷物はその列を参照した結果でその判定に見あったシートを印刷して欲しいのです。
(紫苑) 2019/03/19(火) 09:05

A6〜A100のすべてのセルにA〜Eの何れかが入力されているのでしょうか?
仮に全部Aと入力されていた場合は、95回、Sheet5 を印刷を繰り返せばよいのですか。

(マナ) 2019/03/19(火) 18:24


何度もすみません。
A6〜A100のすべての行にA〜Eが入力されているわけではなく
印刷する作業時、毎回行数が異なるため、A〜Eもしくはブランクが入ります。

判定結果 印刷番号 印刷枚数
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


何度もすみません。
.PrintOut Copies:=c.Offset(, 2).Value

の部分で
実行時エラー'1004'
WorksheetクラスのPrintOutメソッドが失敗しました。

となってしまいました。
印刷したいシートは非表示ではないのですが。。

(紫苑) 2019/03/21(木) 10:02


A6,B6,C6セルに、それそれ、どんな値が入力されていますか?

(マナ) 2019/03/21(木) 10:46


マナさん
お騒がせしました。

きちんと印刷できました。
ながながとお付き合いいただいありがとうございました。
感謝、感謝です。

(紫苑) 2019/03/21(木) 11:32


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.