- ベストアンサー
エクセルマクロで、選択しているセルから印刷範囲を設定する方法を教えて下さい。
こんにちは。いつもお世話になっています。 エクセルで、データーベースを作成しました。 これから日を増すごとに、データ行がどんどん増えていきます。 アクティブにしたセルから、列右へ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 このように書いてみたのですが、動きません。 すみませんが、どうしたら良いか教えて下さい。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
次のような内容ではいかがでしょう。 Sub Test() Selection.Resize(16, 10).Select Selection.PrintPreview 'PrintOut End Sub
その他の回答 (3)
- wangkp
- ベストアンサー率25% (9/35)
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)
既に回答は出ていますが・・・ どこでマクロがこけて、それがなぜなのか少しは考えましたか? 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)
マクロの自動記録を利用すれば簡単にできるはずですが… >選択しているセルから印刷範囲を設定する方法 ActiveSheet.PageSetup.PrintArea = ctiveCell.Resize(15, 9).Address 選択範囲を印刷するなら、わざわざ印刷範囲を設定しなくても ActiveCell.Resize(15, 9).PrintOut copies:=1 でいけるのでは?
お礼
ありがとうございます!できました
お礼
ありがとうございます!できました