VBA:印刷範囲をセル値で指定する方法
印刷範囲を指定する時に、PageSetup.PrintArea = "A1:R10"
って書くことが多いと思いますが、
印刷範囲をセルに書いている「行番号」で指定できると楽ですね。
範囲を変数にして、
PageSetup.PrintArea = Range("A1", "R" & i).Address
って書くと、できちゃいます。
以下、標準モジュールにコードを書いてみました。
R列までで、A1セルに入れた数字の行数まで印刷範囲にできます。
----------------------------------------------------
Sub 印刷範囲行を変数で指定()
Dim i As Integer
PageSetup.PrintArea = "" '印刷範囲クリアー
ResetAllPageBreaks '改ページクリアー
i = Range("A1") '★変数記入セル
PageSetup.PrintArea = Range("A1", "R" & i).Address '★印刷範囲
End Sub
-----------------------------------------------------
Rangeの書き方と、
.Address を使うのがミソですね。
通信簿印刷で、所見欄を印刷範囲に入れたり外したり、
週案で7時間目まで表示させたり、させなかったりが、
印刷範囲を変えるだけでできます。
セルに値を入れれば指定できるので、コードを書き換えなくてもOK。
備忘録として書いておきます。
では、また(^^)/