'印刷範囲を取得
a = ActiveSheet.PageSetup.PrintArea
With ActiveSheet.Range(a)
b = .Rows(.Rows.Count).Row '最終行
b = .Columns(.Columns.Count).Column '最終列
b = .Row '開始行
b = .Column '開始列
End With
では、解説していきます。
VBAで印刷範囲を取得する
印刷範囲を取得する方法について、ご紹介します。
印刷範囲を取得できれば、別シートや別ブックに、印刷範囲を設定することができます。
PageSetup.PrintAreaで取得
VBAで、印刷範囲を取得するのは、『PageSetup.PrintArea』を使えばできます。
やってみます。
次のワークシートから、印刷範囲を取得してみます。
使うワークシート
印刷範囲を取得してみます。
Sub TEST1()
'印刷範囲を取得
a = ActiveSheet.PageSetup.PrintArea
MsgBox a
End Sub
実行します。
印刷範囲を取得
印刷範囲は、『"$B$3:$E$6"』となりました。
ワークシートの印刷範囲と合っていますね。正しく取得できています。
自動設定となっていると『空白""』となる
印刷範囲の取得で、少し注意点があります。
印刷範囲が、自動設定となっていると、印刷範囲を取得できません。
自動設定とは、初期設定のことです。
なので、印刷範囲を設定していないと、印刷範囲を取得できないことになります。
当たり前そうですけども、意外とこれで行き詰まったりします。
ちょっとやってみます。
印刷範囲を設定していないワークシートです。
印刷範囲の設定なし
改ページプレビューで見てみます。
印刷範囲が設定されているように見える
印刷範囲の設定がされてそうです。
このワークシートから印刷範囲を取得してみます。
Sub TEST2()
'印刷範囲を取得
a = ActiveSheet.PageSetup.PrintArea
MsgBox a
End Sub