• ベストアンサー

印刷枚数をセルの数値としたい

どうか、ご教授お願いします。 簡単なマクロは組めますがVBAは初心者です。 エクセルで作成している、毎日提出する書類があり、フォーマットが決まっています。 日によって、件数が違いますので10件あれば10枚印刷、2件であれば2枚と印刷枚数を自動的に変更できますか? 別の表で一覧表を作り、一枚のフォーマットにはVLOOK関数を使用して反映させています。ですから今日の件数という数値はその別表のセルでcounta関数で数値は出ます。 その数値を終了ページに反映させるということはできますか? 質問もつたないですがよろしくお願いします

質問者が選んだベストアンサー

  • ベストアンサー
  • ao777
  • ベストアンサー率34% (43/123)
回答No.5

>貼り付けましたが、エラーでデバック(?)と出ました。実行エラー1004 数値は1から32767の範囲でなければないりません。この数値の範囲で入力しなおしもう一度行ってください、と表示されました。 えーっとですね。それは多分セルAE23に数字が何も入っていないか、32767以上の数字が入ってる。 もしくは saisyuu = Range("AE23").Value の変数を指定してますが、どこのシートとはこちらではわかんないので、アクティヴのシートのAE23の数値をsaisyuuという変数に入れなさいということを記述しておりますので、実行時の画面が求めたいAE23以外のとんでもないシートをアクティブにしているとだめです。 一番良いのはシートを指定してやるのが良いのですが、こちらでわからないので、そのような記述をしています。 AE23にちゃんと数字が入っているのを確認し、そこのシートを開いたまま実行確認して下さい。先ほど実行確認しましたが問題なく動きます。

maron903
質問者

お礼

できました!! ありがとうございます。 本当にありがとうございます。 本を買って勉強したいと思います。 どうも何度もすみませんでした。ご親切に何度もご教示いただき本当に感謝しております。

その他の回答 (4)

  • ao777
  • ベストアンサー率34% (43/123)
回答No.4

ActiveWindow.SelectedSheets.PrintOut From:=1, To:=2, Copies:=1, Collate _ :=True のとこを下記に治して下さい。 Dim saisyuu As Integer saisyuu = Range("AE23").Value ActiveWindow.SelectedSheets.PrintOut From:=1, To:=saisyuu, Copies:=1, Collate _ :=True 実行確認もデバックもしていませんが、いけると思います。 できなければまた、言って下さい。

maron903
質問者

お礼

Sub 印刷() ' ' 印刷 Macro ao777さん本当に感謝します 貼り付けましたが、エラーでデバック(?)と出ました。実行エラー1004 数値は1から32767の範囲でなければないりません。この数値の範囲で入力しなおしもう一度行ってください、と表示されました。 「ActiveWindow.SelectedSheets.PrintOut From:=1, To:=saisyuu, Copies:=1, Collate _ :=True」 が黄色にマーカーされています。 ' マクロ記録日 : 2006/6/22 ユーザー名 : ' ' Dim saisyuu As Integer saisyuu = Range("AE23").Value ActiveWindow.SelectedSheets.PrintOut From:=1, To:=saisyuu, Copies:=1, Collate _ :=True End Sub

  • ao777
  • ベストアンサー率34% (43/123)
回答No.3

toにセル番地をいれたのですが、エラーになります。 変数を作り入れて下さい。 あと、印刷範囲を指定して印刷するのは Range("印刷範囲").Select Selection.PrintOut です。 できればエラーになったコードを見たほうが、何がやりたいのかわかりやすいのですが・・・

maron903
質問者

お礼

度々ありがとうございます マクロ組むといっても、開始から終了までのボタンで構文を作成したこともありませんので、変数がわかりません。 いろいろ検索して調べたのですが、やはり意味がわからないです。本当にお恥ずかしい限りです。 Sub 印刷() ' ' 印刷 Macro ' マクロ記録日 : 2006/6/22 ユーザー名 : ' ' ActiveWindow.SelectedSheets.PrintOut From:=1, To:=2, Copies:=1, Collate _ :=True End Sub ↑が取りあえず二枚印刷するをしてみたのです、そしてto:のあとにセル番地AE23入力したのですが、エラーになり後は何がなんだかわかりませんので削除すると言う繰り返しです。 すみません、よろしくお願いします。

  • surounin
  • ベストアンサー率28% (30/106)
回答No.2

枚数を変化させるのであれば Selection.PrintOut Copies:= _ Range("maisu1").Value(ここに枚数をセット) で出来ます

  • ao777
  • ベストアンサー率34% (43/123)
回答No.1

簡単なマクロは組めますが との事なので、コードは丸々のせませんが、マクロの記録などで、印刷の枚数を適当に指定して、印刷の記録を取り、そのコードを見ると、copiesというのがあると思いますが、それが印刷枚数ですので、その数字のとこを適当な変数にしてやり、コードの一番上のほうに、 適当な変数 = 対象のシートの対象のセル.value とすれば出来ると思います。

maron903
質問者

お礼

早々にご回答いただき本当にありがとうございます。 すみません説明が不十分でしたでした。 別表にあるように、様式は同一ですが、中身が別表によりすべて違いますので、部数をセルの因数から反映させるのでなく、終了ページを反映させたいのですができますでしょうか?

maron903
質問者

補足

toにセル番地をいれたのですが、エラーになります。本当に何もわかっていなくてすみませんがよろしくお願いします。 また印刷範囲をrangeで指定して枚数をセルで設定する方法もあるのですが、まったくどうやればいいのかわかりません。

関連するQ&A