大体でIT

-ちょっと使えるネタを紹介-

大体でIT

Excel VBAで、印刷範囲の拡大/縮小と、ページ数の設定について、ご紹介します。印刷範囲の拡大縮小は、『Zoom』を使えばできます。横と縦のページ数の設定は、『FitToPagesWide』と『FitToPagesTall』があります。具体的なVBAコードを使って、解説していきます。

はじめに

この記事では、印刷範囲の拡大/縮小や、横と縦のページ数を設定する方法について、ご紹介します。

印刷範囲の拡大/縮小は、『Zoom』を使います。

横と縦のページ数を設定するには、『FitToPagesWide』と『FitToPagesTall』を使います。

印刷範囲の拡大/縮小を、少し応用すると、ぎりぎりまで印刷範囲を拡大することもできます。

では、印刷範囲の拡大/縮小と、ページ数の設定について、解説していきます。

この記事で紹介すること

  • 印刷範囲の拡大/縮小を設定
  • 横のページ数を設定
  • 縦のページ数を設定

目次から見たい項目へ移動すると便利ですよ。

目次

ポイントとなるVBAコード

初めに、拡大縮小と、ページ数の設定について、ポイントとなる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でやってみます。

拡大/縮小の値を設定(Zoom)

VBAで、印刷範囲の拡大と縮小は、『PageSetUp.Zoom』を使うとできます。

『PageSetUp.Zoom』にパーセントとして、数値を入力して、拡大もしくは縮小を設定します。

印刷範囲を拡大

では、印刷範囲を、120%に拡大してみます。

Sub TEST1()
    
    '印刷範囲を120%に拡大
    ActiveSheet.PageSetup.Zoom = 120
    
End Sub

実行してみます。

PageSetUp.Zoomを使って印刷範囲を120%に拡大した場合

印刷範囲の、拡大/縮小が、『120%』となりました。

印刷範囲を縮小

次は、印刷範囲を、80%に縮小してみます。

Sub TEST2()
    
    '印刷範囲を80%に縮小
    ActiveSheet.PageSetup.Zoom = 80
    
End Sub

実行してみます。

PageSetUp.Zoomを使って、印刷範囲を80%に縮小した結果

印刷範囲の、拡大/縮小が、『80%』となりました。

拡大/縮小の値を取得(Zoom)

印刷範囲の拡大/縮小を設定する『PageSetUp.Zoom』を使えば、設定されている拡大/縮小の値を、取得することもできます。

印刷範囲の拡大/縮小を取得するVBAコードは、次のようになります。

Sub TEST3()
    
    '拡大/縮小を取得
    a = ActiveSheet.PageSetup.Zoom
    
    MsgBox a
    
End Sub

拡大/縮小の値を『85%』に設定しました。

85%に縮小したシート

印刷範囲の拡大/縮小の値を、85%に設定

では、拡大/縮小の値を取得してみます。

印刷範囲の拡大/縮小の値を取得

PageSetUp.Zoomで拡大/縮小の値を取得

結果は、『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』を使わないとできません。

では、確認のために、こちらのシートを使ってやってみます。

使うシート

使うシート

拡大/縮小は、100%としています。

印刷プレビューを見るとこんな感じです。

印刷プレビューで見てみる

印刷プレビューで見た場合

少し小さいですね。

では、改ページをしない範囲で、印刷範囲を拡大してみます。

ぎりぎりまで、印刷範囲を拡大

PageSetUp.Zoomを使って印刷範囲を改ページしない範囲で、拡大する

結果は、『175%』まで拡大されました。

改ページはされていません。

印刷プレビューをみてみます。

印刷プレビュー

印刷プレビューをみる

ぎりぎりまで、印刷範囲が拡大されています。

1ページで収まっています。

VBAにあらかじめ設定しておけば、ボタン一つで印刷範囲の設定を自動化できます。

VBAで横と縦のページ数を設定する

VBAで横と縦のページ数を設定する方法を、ご紹介します。

エクセルで横と縦のページ数を設定

エクセルで、横のページ数と、縦のページするを設定する場合は、こちらで設定します。

横と縦のページ数を設定

エクセルの横のページと縦のページを設定する場合

この横と縦のページを、VBAで設定することができます。

使うVBAコードはこちらになります。

  • 横のページ数:FitPagesWide
  • 縦のページ数:FitPagesTall

入力する値は、次のものがあります。

  • 自動:False
  • 1ページ:1
  • 10ページ:10

という感じです。

では、横と縦で、VBAコードを作って、実行してみます。

横のページ数を設定する(FitToPagesWide)

横のページ数を設定してみます。

使うVBAコードは、『FitToPagesWide』です。

横のページ数を1ページに

横のページ数を、1ページに変更してみます。

Sub TEST5()
    
    With ActiveSheet.PageSetup
        .Zoom = False '拡大/縮小を不使用
        .FitToPagesWide = 1 '横を1ページに
    End With
    
End Sub

ポイントは、拡大/縮小を『False』にするところです。

横や縦のページ数を指定する場合は、拡大/縮小は『False』にしましょう。

では、確認してみます。

横のページを、自動にしたシートを用意しました。

横のページを自動にしている

では、実行してみます。

FitToPagesWideを使って、横のページを1ページにした結果

結果は、『1 ページ』となりました。

横のページ数を『自動』に

自動にする場合は、『False』を入力します。

横の印刷ページを、『自動』にするVBAコードです。

Sub TEST6()
    
    With ActiveSheet.PageSetup
        .Zoom = 100 '100%に設定
        .FitToPagesWide = False '横を自動に
    End With
    
End Sub

横と縦の印刷範囲が両方とも自動であれば、拡大/縮小の値を、『PageSetup.Zoom = 100』というように設定します。

では、確認してみます。

横の印刷範囲が、1ページのシートを用意しました。

横の印刷範囲が、1ページのシートを用意

では、実行してみます。

FitToPagesWideを使って、横のページを自動にした結果

横の印刷範囲が、『自動』になりました。

こんな感じで、横の印刷ページを変更することができます。

縦のページ数を設定する(FitToPagesTall)

続いて、縦のページ数を設定してみます。

縦のページ数も、横のページ数と同じです。

使うVBAコードは、『FitToPagesTall』です。

横のページ数を『1ページ』に

縦のページ数を、1ページに変更してみます。

Sub TEST7()
    
    With ActiveSheet.PageSetup
        .Zoom = False '拡大/縮小を不使用に
        .FitToPagesTall = 1 '縦を1ページに
    End With
    
End Sub

ポイントは、拡大/縮小を『False』にするところです。

横や縦のページ数を指定する場合は、拡大/縮小は『False』にしましょう。

では、確認してみます。

縦のページを、自動にしたシートを用意しました。

縦のページを自動にしている

では、実行してみます。

FitToPagesTallを使って、縦のページを1ページにした結果

結果は、『1 ページ』となりました。

横のページ数を『自動』に

自動にする場合は、『False』を入力します。

縦の印刷ページを、『自動』にするVBAコードです。

Sub TEST8()
    
    With ActiveSheet.PageSetup
        .Zoom = 100 '拡大/縮小を100%に
        .FitToPagesTall = False '縦を自動に
    End With
    
End Sub

横と縦の印刷範囲が両方とも自動であれば、拡大/縮小の値を、『PageSetup.Zoom = 100』というように設定します。

では、確認してみます。

縦の印刷範囲が、1ページのシートを用意しました。

縦の印刷範囲が、1ページのシートを用意

では、実行してみます。

FitToPagesTallを使って、縦のページを自動にした結果

縦の印刷範囲が、『自動』になりました。

こんな感じで、縦の印刷ページを変更することができます。

おわりに

この記事では、印刷範囲の拡大/縮小と、横と縦のページ数の設定について、ご紹介しました。

印刷範囲の拡大/縮小は、『PageSetup.Zoom』を使います。

横と縦のページ数の指定は、『FitToPagesWide』と『FitToPagesTall』を使うとできます。

印刷範囲の拡大/縮小を、少し応用すると、ぎりぎりまで印刷範囲を拡大する、といったことができます。

参考になればと思います。最後までご覧くださいまして、ありがとうございました。

関連する記事から探す

カテゴリから探す

カテゴリから見たい項目を探すと便利ですよ。

アーカイブから探す