解決済みの質問
エクセルで差込印刷をし、部数指定をするマクロを作りたいです。 データとなるシートに以下...
エクセルで差込印刷をし、部数指定をするマクロを作りたいです。
データとなるシートに以下のデータがあります。
学年 枚数
一年 20
二年 15
三年 32
印刷をするシートのセルA1に学年を差し込み、枚数の部数を印刷したいです。
調べていろんなマクロを組み合わせてみましたが、うまくいきません。
お力を貸して下さい。
- 補足
- ありがとうございます!感謝です!A列の値が可変し、C1の値の行数を印刷したい時下記のように組んでみましたがエラーになります。何故か教えて下さい。
Sub 印刷()
Dim Rng As Range
With Sheets("Sheet1")
For Each Rng In .Range(Range("A1"), Cells(Range("C1").Value, 1)).Select
Sheets("印刷シート").Range("A1").Value = Rng.Value
Sheets("印刷シート").PrintOut Copies:=Rng.Offset(, 1).Value
Next
End With
End Sub
-
- 質問日時:
- 2012/2/14 01:54:02
- ケータイからの投稿
-
- 解決日時:
- 2012/2/16 09:05:04
-
- 回答数:
- 1
-
- 閲覧数:
- 784
-
- ソーシャルブックマークへ投稿:
- Yahoo!ブックマークへ投稿
- はてなブックマークへ投稿
- (ソーシャルブックマークとは)
ベストアンサーに選ばれた回答
ja7awuさん
---補足に対して---
> A列の値が可変し~
> C1の値の行数を印刷したい時~
ちょっと この意味が「データ量が可変」ということのようですが、C1で指定するのが「件数」なのか「最終行」なのか特定できません。
その範囲は A2:A? <-- この?が「セルC1の値」にする ということですか?
> For Each Rng In .Range(Range("A1"), Cells(Range("C1").Value, 1)).Select
Selectしては いけません。
例えば、差込するデータが3件とすると C1に3を入力し、印刷を実行する ということなら こんな感じです。(下のコード)
また 補足のコードから推測すると「何行まで」とも取れるのですが、それなら
For Each Rng In .Range("A2:A" & Range("C1").Value)
なお、データの最終までを印刷するなら、こんな感じです。
For Each Rng In .Range("A2", Cells(Rows.Count, 1).End(xlUp))
全部印刷するなら これ↑が一番いいかと思います。 (お勧めします。)
C1の値を利用なら そのセルの値により実行エラーになりますから実用的にはErrorにならないための処理が必要です。
'---
Sub 印刷()
Dim Rng As Range
With Sheets("Sheet1") '<--枚数指定シート
For Each Rng In .Range("A2").Resize(Range("C1").Value)
Sheets("印刷シート").Range("A1").Value = Rng.Value
Sheets("印刷シート").PrintOut Copies:=Rng.Offset(, 1).Value
Next
End With
End Sub
--------------
こんな感じでいかがでしょうか。
双方のシート名を実際の名前に合わせます。
最初は、Preview:=Trueを有効にして動作を確認後、これを削除すればいいかと思います。
Sub 印刷()
Dim Rng As Range
With Sheets("Sheet1") '<--枚数指定シート
For Each Rng In .Range("A2:A4")
Sheets("印刷シート").Range("A1").Value = Rng.Value
Sheets("印刷シート").PrintOut Copies:=Rng.Offset(, 1).Value ', Preview:=True
Next
End With
End Sub
- 違反報告
- 編集日時:2012/2/14 19:11:01
- 回答日時:2012/2/14 08:48:42
- この質問・回答は役に立ちましたか?
- 役に立った!
お役立ち度:
0人が役に立つと評価しています。


質問した人からのコメント