■概要
表のデータをすべて選択し、選択した範囲で印刷プレビューを実行する。
・処理概要
「ユーザ情報」シートのB2セルを開始とする、「ユーザ情報テーブル」を選択し、印刷プレビューを表示させる。


■フローチャート
印刷プレビュー実行処理について、フローチャートを以下に示す。

■プログラム仕様
| 入力 | 処理内容 | 出力 | 
|---|---|---|
| – | 変数宣言 ・シートオブジェクト(object型) ・シート名(文字列型) ・印刷開始範囲(文字列型) ・テーブル名(文字列型)  | – | 
| – | 変数に初期値を設定する。 ・シート名:”ユーザ情報” ・印刷開始範囲:”B2″ ・テーブル名:”ユーザ情報テーブル”  | – | 
| – | 「ユーザ情報」シートをセットする。 | – | 
| – | ●「ユーザ情報」シートにフォーカス(with句) |アクティブセル領域を選択する。 |選択した領域を「ユーザ情報テーブル」とする。 |選択した「ユーザ情報テーブル」を印刷範囲に設定する。 |印刷プレビュー実行する。 ●  | – | 
| – | シートオブジェクトを解放する。 | – | 
■サンプルコード
Option Explicit
' 印刷プレビュー実行処理
Public Sub PrintPreviewTable()
    
    ' 変数宣言
    Dim sht_userinfo        As Worksheet    ' シートオブジェクト
    Dim sht_name            As String       ' シート名
    Dim print_start_range   As String       ' 印刷開始範囲
    Dim table_name          As String       ' テーブル名
    
    ' エラー時の処理をセット
    On Error GoTo PrintPreviewTable_err
    
    ' 変数に初期値を設定
    sht_name = "ユーザ情報"
    print_start_range = "B2"
    table_name = "ユーザ情報テーブル"
    
    ' 「ユーザ情報」シートをセット
    Set sht_userinfo = ThisWorkbook.Worksheets(sht_name)
    
    ' 「ユーザ情報」シートにフォーカス
    With sht_userinfo
        
        ' アクティブセル領域を選択
        .Range(print_start_range).CurrentRegion.Select
        
        ' 選択した領域を「ユーザ情報テーブル」とする
        ThisWorkbook.Names.Add Name:=table_name, RefersToR1C1:=Selection
        
        ' 選択した「ユーザ情報テーブル」を印刷範囲に設定
        .PageSetup.PrintArea = table_name
        
        ' 印刷プレビュー実行
        .PrintPreview
    
    End With
    
    ' 終了処理へ移動
    GoTo PrintPreviewTable_exit
' エラー時の処理
PrintPreviewTable_err:
    ' エラー内容を出力
    MsgBox Err.Description
    
    ' 終了処理へ移動
    GoTo PrintPreviewTable_exit
' 終了処理
PrintPreviewTable_exit:
    ' シートオブジェクトを解放
    Set sht_userinfo = Nothing
End Sub
実行結果
事前準備:マクロ実行ボタン「印刷プレビュー」の作成

マクロ実行ボタン「印刷プレビュー」の押下

実行結果:印刷プレビューの表示




コメント