ここから本文です

解決済みの質問

エクセルで差込印刷をし、部数指定をするマクロを作りたいです。 データとなるシートに以下...

chatoran1027さん

エクセルで差込印刷をし、部数指定をするマクロを作りたいです。

データとなるシートに以下のデータがあります。
学年 枚数
一年 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

違反報告

ベストアンサーに選ばれた回答

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

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

  • 成功言葉足らずの質問にも詳しく説明くださり、ありがとうございました。大感謝です!!使ったのはお勧めのですが他のも勉強になりました!!別で応用します。
  • コメント日時:2012/2/16 09:05:04

グレード

この質問・回答は役に立ちましたか?
役に立った!

お役立ち度:お役立ち度 0点(5点満点中)0人が役に立つと評価しています。

この質問に付けられたタグ

タグとは

知恵ノートとは?

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。

お客様自身の責任と判断で、ご利用ください。

違いがわかる知恵袋

[カテゴリ:Visual Basic]

ただいまの回答者

20時30分現在

3420
人が回答!!

1時間以内に6,164件の回答が寄せられています。

>>回答ひろばに行く


知恵コレに追加する

閉じる

知恵コレクションをするID/ニックネームを選択し、「追加する」ボタンを押してください。
※知恵コレクションに追加された質問や知恵ノートは選択されたID/ニックネームのMy知恵袋で確認できます。

ほかのID/ニックネームで利用登録する