大体でIT
大体でIT
2020/12/15
Excel VBAで、印刷範囲の拡大/縮小と、ページ数の設定について、ご紹介します。印刷範囲の拡大縮小は、『Zoom』を使えばできます。横と縦のページ数の設定は、『FitToPagesWide』と『FitToPagesTall』があります。具体的なVBAコードを使って、解説していきます。
この記事では、印刷範囲の拡大/縮小や、横と縦のページ数を設定する方法について、ご紹介します。
横と縦のページ数を設定するには、『FitToPagesWide』と『FitToPagesTall』を使います。
印刷範囲の拡大/縮小を、少し応用すると、ぎりぎりまで印刷範囲を拡大することもできます。
では、印刷範囲の拡大/縮小と、ページ数の設定について、解説していきます。
印刷範囲の拡大/縮小を設定
横のページ数を設定
縦のページ数を設定
初めに、拡大縮小と、ページ数の設定について、ポイントとなるVBAコードをまとめておきます。
VBAコードだけ確認したい場合に、ご活用ください。
'拡大/縮小
ActiveSheet.PageSetup.Zoom = 120 '120%に設定
a = ActiveSheet.PageSetup.Zoom '拡大/縮小を取得
'横と縦のページを設定
With ActiveSheet.PageSetup
.Zoom = False '拡大/縮小を不使用にする
.FitToPagesWide = 1 '横を1ページ
.FitToPagesTall = 1 '縦を1ページ
End With
'横と縦のページを自動に設定
With ActiveSheet.PageSetup
.Zoom = 100 '拡大/縮小を100%
.FitToPagesWide = False '横を自動
.FitToPagesTall = False '縦を自動
End With
VBAで、印刷範囲の拡大と縮小をする方法について、ご紹介します。
エクセルでいうと、印刷範囲の拡大と縮小はこちらでできます。
印刷範囲の拡大と縮小
この印刷範囲の拡大と縮小を、VBAでやってみます。
VBAで、印刷範囲の拡大と縮小は、『PageSetUp.Zoom』を使うとできます。
『PageSetUp.Zoom』にパーセントとして、数値を入力して、拡大もしくは縮小を設定します。
印刷範囲を拡大
Sub TEST1()
'印刷範囲を120%に拡大
ActiveSheet.PageSetup.Zoom = 120
End Sub
印刷範囲の、拡大/縮小が、『120%』となりました。
印刷範囲を縮小
Sub TEST2()
'印刷範囲を80%に縮小
ActiveSheet.PageSetup.Zoom = 80
End Sub
印刷範囲の、拡大/縮小が、『80%』となりました。
印刷範囲の拡大/縮小を設定する『PageSetUp.Zoom』を使えば、設定されている拡大/縮小の値を、取得することもできます。
印刷範囲の拡大/縮小を取得するVBAコードは、次のようになります。
Sub TEST3()
'拡大/縮小を取得
a = ActiveSheet.PageSetup.Zoom
MsgBox a
End Sub
85%に縮小したシート
印刷範囲の拡大/縮小の値を取得
結果は、『85%』となって、正しく拡大/縮小の値を取得できています。
改ページされる手前まで、印刷範囲を拡大する、というのをやってみます。
できるだけ、印刷範囲を拡大して、見やすくしたい、という場合に使えます。
改ページされる手前まで、印刷範囲を拡大するVBAコードです。
Sub TEST4()
With ActiveSheet.PageSetup
Do
Application.PrintCommunication = False
.Zoom = .Zoom + 5 '5%だけ拡大する
Application.PrintCommunication = True
Application.PrintCommunication = False
b = .Pages.Count 'ページ数を取得
Application.PrintCommunication = True
'改ページされた場合
If b > 1 Then
Application.PrintCommunication = False
.Zoom = .Zoom - 5 '5%だけ縮小する
Application.PrintCommunication = True
Exit Do
End If
Loop
End With
End Sub
『PageSetup』を使うときは、シートを更新するために、プリンターとの接続を止めたり、接続したりする必要があります。
なので、プリンターとの接続の停止と開始のため、『Application.PrintCommunication』を使っています。
ちょっとめんどくさいですけども、『Application.PrintCommunication』を使わないとできません。
では、確認のために、こちらのシートを使ってやってみます。
使うシート
印刷プレビューで見てみる
では、改ページをしない範囲で、印刷範囲を拡大してみます。
ぎりぎりまで、印刷範囲を拡大
印刷プレビュー
VBAにあらかじめ設定しておけば、ボタン一つで印刷範囲の設定を自動化できます。
VBAで横と縦のページ数を設定する方法を、ご紹介します。
エクセルで、横のページ数と、縦のページするを設定する場合は、こちらで設定します。
横と縦のページ数を設定
この横と縦のページを、VBAで設定することができます。
横のページ数:FitPagesWide
縦のページ数:FitPagesTall
では、横と縦で、VBAコードを作って、実行してみます。
横のページ数を設定する(FitToPagesWide)
使うVBAコードは、『FitToPagesWide』です。
横のページ数を1ページに
Sub TEST5()
With ActiveSheet.PageSetup
.Zoom = False '拡大/縮小を不使用
.FitToPagesWide = 1 '横を1ページに
End With
End Sub
ポイントは、拡大/縮小を『False』にするところです。
横や縦のページ数を指定する場合は、拡大/縮小は『False』にしましょう。
横のページ数を『自動』に
横の印刷ページを、『自動』にするVBAコードです。
Sub TEST6()
With ActiveSheet.PageSetup
.Zoom = 100 '100%に設定
.FitToPagesWide = False '横を自動に
End With
End Sub
横と縦の印刷範囲が両方とも自動であれば、拡大/縮小の値を、『PageSetup.Zoom = 100』というように設定します。
こんな感じで、横の印刷ページを変更することができます。
縦のページ数を設定する(FitToPagesTall)
使うVBAコードは、『FitToPagesTall』です。
横のページ数を『1ページ』に
Sub TEST7()
With ActiveSheet.PageSetup
.Zoom = False '拡大/縮小を不使用に
.FitToPagesTall = 1 '縦を1ページに
End With
End Sub
ポイントは、拡大/縮小を『False』にするところです。
横や縦のページ数を指定する場合は、拡大/縮小は『False』にしましょう。
横のページ数を『自動』に
縦の印刷ページを、『自動』にするVBAコードです。
Sub TEST8()
With ActiveSheet.PageSetup
.Zoom = 100 '拡大/縮小を100%に
.FitToPagesTall = False '縦を自動に
End With
End Sub
横と縦の印刷範囲が両方とも自動であれば、拡大/縮小の値を、『PageSetup.Zoom = 100』というように設定します。
こんな感じで、縦の印刷ページを変更することができます。
この記事では、印刷範囲の拡大/縮小と、横と縦のページ数の設定について、ご紹介しました。
印刷範囲の拡大/縮小は、『PageSetup.Zoom』を使います。
横と縦のページ数の指定は、『FitToPagesWide』と『FitToPagesTall』を使うとできます。
印刷範囲の拡大/縮小を、少し応用すると、ぎりぎりまで印刷範囲を拡大する、といったことができます。
参考になればと思います。最後までご覧くださいまして、ありがとうございました。