フォームを印刷する
 
 目的

フォームに表示されているラベルやテキストボックスの内容をそのままプリンターに出力します。サンプルコードでは「コマンドボタン」以外のコントロールを出力するようにしています。

 ポイント

Form オブジェクトの PrintForm メソッドを使用します。 背景色を白で出力するようにするためラベルの BackStyle を透明にしておきます。コマンドボタンなど出力する必要のないものは Visible プロパティを一時的に False に設定するようにします。

 
 サンプルコード


Option Explicit

Private Sub cmdPrint_Click()
'// フォームをコマンドボタンを除いて印刷します。
'// ラベルの BackStyle プロパティは 0-透明に設定します。

    Dim ctrLoop As Control
    
    ' コマンドボタンは非表示にする
    For Each ctrLoop In Me.Controls
        If TypeOf ctrLoop Is CommandButton Then
            ctrLoop.Visible = False
        End If
    Next
    
    Me.BackColor = vbWhite '背景色を白にする
    Me.PrintForm 'フォームのハードコピーを出力
    Me.BackColor = vb3DFace '背景色を標準に戻す
    
    ' コマンドボタンの非表示状態を戻す
    For Each ctrLoop In Me.Controls
        If TypeOf ctrLoop Is CommandButton Then
            ctrLoop.Visible = True
        End If
    Next
    
End Sub


ソースのダウンロード