01-VBA

印刷機能|Excel VBA (Part.1)【PageSetupプロパティ/PrintPreviewメソッド/PrintOutメソッド】編 | 現役エンジニア&プログラミングスクール講師

目標

VBAを利用して印刷の設定・利用ができる。
ページ設定属性とPageSetupプロパティを理解して利用できる
PrintPreviewメソッドとPrintOutメソッドを理解して利用できる。

ページ設定属性と利用方法

ページ設定属性とは

Excelで印刷を行うとき、印刷の範囲を決めたり、1ページに収めたり、用紙を縦向きにしたり、横向きにしたり、色々なことを行います。VBAでも同様にこれらの設定をプログラムから行わせることができます。この時に用いられるのが印刷設定用のプロパティで、このことを「ページ設定属性」と言います。

ページ設定属性の利用

ページ設定属性はPageSetupプロパティに個別のつなげて利用します。それぞれのプロパティに設定値を代入して設定します。

PageSetupプロパティはWorksheet オブジェクトのひとつです。PageSetupプロパティを利用するとPageSetupオブジェクトを返すことが出来ます。PageSetupオブジェクトには、すべてのページ設定属性 (左余白、下余白、用紙サイズなど) が、プロパティとして含まれています。

ページ設定属性の種類

属性設定項目設定値
PrintArea印刷範囲の設定”開始セル:終了セル”
Orientation印刷用紙の向きxlPortrait(縦向き)
xlLandscape(横向き)
Zoom印刷の拡大と縮小50%など%で指定
FitToPagesTall縦方向のページ数
※Zoomプロパティは「false」に設定
1(1ページに収める)
false
FitToPagesWide横方向のページ数
※Zoomプロパティは「false」
1(1ページに収める)
false
CenterVertically垂直方向に対して印刷範囲を中央に設定True/False
CenterHorizontally水平方向に対して印刷範囲を中央に設定True/False

PrintPreviewメソッドの概要と利用方法

PrintPreviewメソッドとは

印刷プレビューを表示させるにはPrintPreviewメソッドを利用します。またPrintPreviewメソッドに準備されている引数「EnableChanges」を「False」にすると印刷プレビュー中にユーザーに印刷設定の変更を行わせないようにすることができます。

ユーザーに設定の変更を許可するのであれば、後ほど出てくるPrintOutメソッドを利用するのが一般的です。PrintOutメソッドでもPreview属性をTrue(「Preview:=True」)にすると印刷プレビューが確認できます。

印刷プレビュー確認中にユーザーに印刷設定の変更を許可する場合は、PrintPreviewメソッドを利用するメリットは少ないです。

PrintPreviewメソッドの利用方法

PrintPreviewの構文

ActiveSheet.PrintPreview EnableChanges:=False

サンプルプロシージャ1

Sub printProgram1()

    Sheets("sheet5").Select
    
    With ActiveSheet.PageSetup
        .PrintArea = "K1:Q8"
        .Orientation = xlLandscape
        .Zoom = False
        .FitToPagesWide = 1
        .FitToPagesTall = 1
        .CenterHorizontally = True
    End With
    
    ActiveSheet.PrintPreview EnableChanges:=False
    
End Sub

実行結果

PrintOutメソッドの概要と利用方法

PrintOutメソッドとは

選択されたオブジェクトを印刷するメソッドです。PrintOutメソッドには9種類の引数が準備されています。

PrintOutメソッドの利用方法

PrintOutメソッドの構文

PrintOut 第1引数,第2引数,第3引数,第4引数,第5引数,第6引数,第7引数,第8引数,第9引数

引数には名前があります。

引数名前付き引数設定項目
第1引数From印刷開始ページ番号。
省略した場合は先頭のページから印刷
第2引数To印刷終了ページ番号。
省略した場合は最後のページまで印刷
第3引数Copies印刷部数。
省略した場合は1部
第4引数PreviewTrue→プレビューあり
False→プレビューなし
省略した場合は「False」
第5引数ActivePrinterプリンター名の指定。
省略した場合は通常利用するプリンター名
第6引数PrintToFileTrue→ファイルへの出力
False→ファイルへの出力なし
省略した場合は「False」
第7引数CollateTrue→部単位の印刷
False→ページ単位の印刷
第8引数PrToFileNameTrue→出力ファイル名を設定する
第9引数IgnorePrintAreasTrue→設定された印刷範囲を無視して印刷
False→設定された印刷範囲で印刷

サンプルプロシージャ2

Sub printProgram2()
    Dim st As Object
    Sheets(Array("sheet1", "sheet2", "sheet3")).Select
    
    For Each st In ActiveWindow.SelectedSheets
        With st.PageSetup
            .PrintArea = "C3:H7"
            .Orientation = xlLandscape
            .Zoom = False
            .FitToPagesWide = 1
            .FitToPagesTall = 1
            .CenterHorizontally = True
        End With
    Next st
    
    Sheets("sheet1").Activate
    ActiveWindow.SelectedSheets.PrintOut Preview:=True
End Sub

実行結果

今回は以上となります。

初心者も実践で通用!「VBA・VBS」おすすめ書籍5選 | 現役エンジニア&プログラミングスクール講師「VBA・VBS」初心者の方が実践業務の中でそれらを活用しt活躍できるために必要な知識を習得できる書籍を紹介しています。ページの下部には「おすすめのITスクール情報」「おすすめ求人サイト」について情報を掲載中。...

ブックマークのすすめ

「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。

「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】| 現役エンジニア&プログラミングスクール講師「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】について解説している記事です。削除方法も掲載しています。...
【パソコン選び】失敗しないための重要ポイント | 現役エンジニア&プログラミングスクール講師【パソコン選び】失敗しないための重要ポイントについての記事です。パソコンのタイプと購入時に検討すべき点・家電量販店で見かけるCPUの見方・購入者が必要とするメモリ容量・HDDとSSDについて・ディスプレイの種類・バッテリーの持ち時間や保証・Officeソフト・ウィルス対策ソフトについて書いています。...
RELATED POST
01-VBA

ExcelVBAのCellsプロパティ | 現役エンジニア&プログラミングスクール講師

2022年8月18日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
01-VBA

演算子|Excel VBA (Part.3)【比較演算子】応用編(前編)| 現役エンジニア&プログラミングスクール講師

2022年10月27日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
01-VBA

クラスの利用方法|Excel VBA (Part.2) | 現役エンジニア&プログラミングスクール講師

2023年2月18日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
01-VBA

演算子|Excel VBA (Part.5)【論理演算子】| 現役エンジニア&プログラミングスクール講師

2022年10月29日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
01-VBA

Excel VBA の「デバッグ」(Part.2)「ステップモード」「ブレークポイント」| 現役エンジニア&プログラミングスクール講師

2022年12月14日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
01-VBA

制御構文|Excel VBA (Part.3)【If Then】ネスト・論理演算子利用編 | 現役エンジニア&プログラミングスクール講師

2022年11月11日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site