VB6「印刷」ダイアログを表示する

スポンサーリンク

VB6 では、CommonDialog コントロールの ShowPrinter メソッドを使用します。他のダイアログの機能も含まれてしまっているので、有効でないプロパティが存在します。

複数のオプションを選択したい場合は Or キーワードで付加する必要があります。また、面倒なことに [キャンセル] ボタンを選択したことを、エラーを起こすことによって判断することになります。

以下の例では、適用可能な属性を列挙していますが、必要のないものは削ってください。オプションの殆どが、Flags プロパティに集約されています。

サンプルコード

以下にサンプルコードを示します。

VB6.0 以前
    ' デフォルト プリンタを使用する
    'CommonDialog1.PrinterDefault = True

    ' 印刷範囲で指定可能な最大ページ数を設定する
    CommonDialog1.Max = 32767

    ' 印刷範囲で指定可能な最小ページ数を設定する
    CommonDialog1.Min = 1

    ' 印刷開始ページを設定する
    CommonDialog1.FromPage = 1

    ' 印刷終了ページを設定する
    CommonDialog1.ToPage = 32767

    ' 部数を設定する
    CommonDialog1.Copies = 8

    ' 印刷の向きを縦にする
    'CommonDialog1.Orientation = cdlPortrait

    ' 印刷の向きを横にする
    CommonDialog1.Orientation = cdlLandscape

    ' 印刷ダイアログではなく、プリンタの設定ダイアログを表示する
    'CommonDialog1.Flags = CommonDialog1.Flags Or PrinterConstants.cdlPDPrintSetup

    ' [ファイルへ出力] チェックボックスを無効にする
    'CommonDialog1.Flags = CommonDialog1.Flags Or PrinterConstants.cdlPDDisablePrintToFile

    ' [ファイルへ出力] チェックボックスを非表示にする
    'CommonDialog1.Flags = CommonDialog1.Flags Or PrinterConstants.cdlPDHidePrintToFile

    ' [ファイルへ出力] チェックボックスをオンにする
    CommonDialog1.Flags = CommonDialog1.Flags Or PrinterConstants.cdlPDPrintToFile

    ' ページ範囲を「選択した部分」にする
    'CommonDialog1.Flags = CommonDialog1.Flags Or PrinterConstants.cdlPDSelection

    ' ページ範囲を「ページ指定」にする
    CommonDialog1.Flags = CommonDialog1.Flags Or PrinterConstants.cdlPDPageNums

    ' ページ範囲の「選択した範囲」を無効にする
    'CommonDialog1.Flags = CommonDialog1.Flags Or PrinterConstants.cdlPDNoSelection

    ' ページ範囲の「ページ範囲」を無効にする
    'CommonDialog1.Flags = CommonDialog1.Flags Or PrinterConstants.cdlPDNoPageNums

    ' [ヘルプ] ボタンを表示する (プリンタの設定ダイアログのみで有効)
    'CommonDialog1.Flags = CommonDialog1.Flags Or PrinterConstants.cdlPDHelpButton

    ' 通常使うプリンタがなくても警告を表示しない
    'CommonDialog1.Flags = CommonDialog1.Flags Or PrinterConstants.cdlPDNoWarning

    ' Flags の属性はこのように同時に選択するのが一般的である
    'CommonDialog1.Flags = cdlPDPrintToFile Or cdlPDPageNums

    ' [キャンセル] ボタンを選択した場合はエラーを発生させる
    CommonDialog1.CancelError = True

    ' エラーをトラップしない
    On Error Resume Next

    ' ダイアログを表示する
    Call CommonDialog1.ShowPrinter

    ' [キャンセル] ボタンが選択されなかった場合は、印刷の処理を実行する
    If Err.Number <> ErrorConstants.cdlCancel Then
        Call MsgBox("ここに、印刷の処理を実装してください")
    End If

    ' エラー処理を通常のロジックに戻す
    On Error GoTo 0

関連するリファレンス

準備中です。

スポンサーリンク