エクセルで楽々校務

学校現場で使えるエクセルファイルや小技の紹介をしています。掘り出し物があるかもしれません。あと、今までの実践での疑問点もつぶやきます。

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。

 

備忘録として書いておきます。

 

では、また(^^)/