• ベストアンサー

エクセルマクロで、選択しているセルから印刷範囲を設定する方法を教えて下さい。

こんにちは。いつもお世話になっています。 エクセルで、データーベースを作成しました。 これから日を増すごとに、データ行がどんどん増えていきます。 アクティブにしたセルから、列右へ9行、行下へ15行の範囲を印刷させたいのです。 Dim r As Integer r = ActiveCell.Column Dim d As Integer d = ActiveCell.Row Dim h As Integer h = Cells(r.g).Offset(15, 9) ActiveSheet.Range("rd:h").PrintOut , preview:=True このように書いてみたのですが、動きません。 すみませんが、どうしたら良いか教えて下さい。 よろしくお願いします。

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

  • ベストアンサー
回答No.1

次のような内容ではいかがでしょう。 Sub Test()  Selection.Resize(16, 10).Select  Selection.PrintPreview 'PrintOut End Sub

orennji1111
質問者

お礼

ありがとうございます!できました

その他の回答 (3)

  • wangkp
  • ベストアンサー率25% (9/35)
回答No.4

1,2番の回答がいずれもOkだと思います。 技術の話なんですが、質問者のコードが間違っています。 >ActiveSheet.Range("rd:h").PrintOut , preview:=True r,d,hいずれも変数ですので、上記の書き方はだめ。 ActiveSheet.Range(r+d+":"+h).PrintOut , preview:=True こうみたい書き方は大丈夫はずだ。

  • Sinogi
  • ベストアンサー率27% (72/260)
回答No.3

既に回答は出ていますが・・・ どこでマクロがこけて、それがなぜなのか少しは考えましたか? Range Cells についてヘルプは見ましたか? 番地指定についてr1c1形式は知っていますか? これらを考えた上で、皆さんが提示してくれるコードをみれば理解が向上すると思います。 ※提示されたコードでは g が何者か不明です。 提示されたコードを元に範囲指定だけ示します。 Dim r As Integer Dim d As Integer r = ActiveCell.Column d = ActiveCell.Row Range(cells(d,r),cells(d+15,r+9)).Select

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

マクロの自動記録を利用すれば簡単にできるはずですが… >選択しているセルから印刷範囲を設定する方法  ActiveSheet.PageSetup.PrintArea = ctiveCell.Resize(15, 9).Address 選択範囲を印刷するなら、わざわざ印刷範囲を設定しなくても  ActiveCell.Resize(15, 9).PrintOut copies:=1 でいけるのでは?

orennji1111
質問者

お礼

ありがとうございます!できました

関連するQ&A