コモンダイアログを使用して「通常使うプリントが変更されてしまう」件に
ついて、あるサイトから、以下のようなプログラムを見つけました。
Private Sub Command1_Click()
Me.CommonDialog1.CancelError = True
Me.CommonDialog1.PrinterDefault = False
Me.CommonDialog1.Flags = PrinterConstants.cdlPDReturnDC
On Error Resume Next
Call CommonDialog1.ShowPrinter
On Error GoTo 0
If Err.Number <> 0& Then
Exit Sub
End If
Dim hDeviceContext As Long
hDeviceContext = Me.CommonDialog1.hDC
If hDeviceContext > 0& Then
Exit Sub
End If
Me.RichTextBox1.Text = "千葉! 滋賀! 佐賀!"
Me.RichTextBox1.SelStart = 0
Me.RichTextBox1.SelLength = Len(Me.RichTextBox1.Text) - 1
Call Me.RichTextBox1.SelPrint(hDeviceContext)
End Sub
ここで、If hDeviceContext > 0& Then を入れると、印刷されたり
されなかったりと言う現象が発生します。確かに印刷のたびに
hDeviceContext の値は0以上、0以下を行き来していたりもします。
この文の意味も理解していませんので、教えていただきたいのと、
確実に印刷できるように指導ください。
ツイート | ![]() |