> > VBのVerは?OSは? > > とりあえず、うちで、動いているサンプルをVBのページに > アップしました。 > サンプルをDLして中のExeでも印刷できてないでしょうか? > 印刷できたら、VBのプロジェクトを開いて、実行して印刷、 > できるか試してみてください。
どうも、おかしいね。 別の方法として、クリップボード経由のサンプルがあるので これでよければ、こっちで。(かなり、昔に作ったやつ) リサイズとかは自分でアレンジしてね。
Option Explicit
Declare Sub KeyBoardEvent Lib "user32" _ Alias "keybd_event" (ByVal bVk As Byte, _ ByVal bScan As Byte, _ ByVal dwFlags As Long, _ ByVal dwExtraInfo As Long) Public Const VK_SNAPSHOT = &H2C Public Const KEYEVENTF_EXTENDEDKEY = &H1
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' フォーム又は、画面をクリップボードに取り込み印刷を行う ' frmForm : (省略可能) 印刷を行うフォーム。 ' 省略時はアクティブなフォームを印刷。 ' 但し、Paramに1を指定した場合は無視される。 ' Param : (省略可能) 0:フォームのみを印刷。 ' 1:スクリーンを印刷。(既定値) ' Orientation : (省略可能) 用紙の方向。PrinterオブジェクトのOreientationプロパティと同じ。 ' vbPRORPortrait : 1 : 用紙幅の狭い側を上にして印刷されます。 ' vbPRORLandscape : 2 : 用紙幅の広い側を上にして印刷されます。 Public Sub UzPrintForm(Optional ByVal frmForm As Variant, _ Optional ByVal Param As Variant, _ Optional ByVal Orientation As Variant) On Error GoTo ErrorHandle
If Not IsMissing(frmForm) Then frmForm.SetFocus End If DoEvents If IsMissing(Param) Then Param = 1 End If Call KeyBoardEvent(VK_SNAPSHOT, Param, 0, 0) DoEvents If Not IsMissing(Orientation) Then Printer.Orientation = Orientation End If Printer.PaintPicture Clipboard.GetData(vbCFBitmap), 0, 0 Printer.EndDoc Exit Sub ErrorHandle: Call Err.Raise(Err.Number, Err.Source, Err.Description) End Sub
|