プロが教えるわが家の防犯対策術!

エクセルの表を印刷するためのマクロを作っています。
印刷の都度、印刷部数が変わってくるので
「A1」に入力した部数を印刷するようにしたいのですが・・・

ActiveWindow.SelectedSheets.PrintOut Copies:=Range("A1").Value

これではエラーとなってしまいます。
正しくはどのようにすればよいのでしょか。

初歩的な事で申し訳ありませんが、よろしくご教授ください。

A 回答 (4件)

提示のコードで上手くいくはずです。



ただ単に、セルA1に数値が入ってないだけでは?
それか、部数のセルA1は印刷するシートではなく
別シートなのでは?

もしそうなら、
Copies:=Sheets("Sheet2").Range("A1").Value
とシート名を明示しなければ。。。

それから、
印刷シートのA1に部数を入れると
それも印刷されてしまいますが。。。
ま、印刷範囲を選択していたら別ですが。

以上確認してください。
 
    • good
    • 3
この回答へのお礼

ありがとうございます。

まさしく別シートでした!!
お騒がせして申し訳ありません。解決しました。

お礼日時:2009/10/07 17:56

私がやってみるとエラーは出ません。


A1が空白か(数字以外の)文字列になっていたのではないですか。
または選択しておくシートタブが適当でなかったとか。
文字列数字、'2 を入れておいても2部印刷したが。
>エラーとなってしまいます
エラー原因の質問をしているのでしょ、どんなエラーが出たか書くのが常識だよ。
    • good
    • 0
この回答へのお礼

ありがとうございます。
お騒がせして申し訳ありません。解決しました。

お礼日時:2009/10/07 17:57

Dim busu As String


busu = InputBox("部数を入れてください")
------------Copies:=Range(busu)-----
部数を変数にしたほうが印刷ミスを防止できるんじゃないでしょうか
    • good
    • 0
この回答へのお礼

ありがとうございます。
解決しました。

お礼日時:2009/10/07 17:57

Range("A1").Valueだと文字で認識されるからかな?


数値型に変更してみてください。
CInt(Range("A1").Value)
    • good
    • 1
この回答へのお礼

ありがとうございます。
やはり「数値を入力してください」と、メッセージが出てしまいます。

お礼日時:2009/10/07 17:27

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A