WindowsXP(Pro)VB6(SP6)でPrinterオブジェクトで、printメソッドを使おうとしたら、メソッド一覧(自動メンバ表示)に出てこない!! いったい何が起こっているのでしょう??
もちろん無理矢理入力すると、エラーが出ます。
考えられる原因をご教授いただけましたら幸いです。。。
※上記URLで表示される質問文だけじゃなく、ページ下部にリンクされている(返信文書)の内容(2件)もご覧下さい。
まず、Printerオブジェクトで、printメソッドが出ない件についてなのですが、MSDNライブラリの文書をいろいろ調べていると
・printメソッドはDebugオブジェクトのメソッドである(これはちゃんと記述があります。)
・ただし、printメソッドの「対象」となるオブジェクトにPrinterオブジェクトも含まれる
(ごめんなさい。これは憶測です)
であるために、[printerオブジェクトのメソッドではないけれど、printメソッドが使用可能]という状態なんじゃないかと思います。
(MSDNライブラリ内の、「Printerオブジェクトを使用した印刷」の例の文書にもPrinter.Printという記述例が出ています。)
こちらで簡単に確認したところ
Private Sub Command1_Click()
Printer.Print ”Printer test”
Printer.EndDoc
End Sub
という記述なら、うまくいきそうでした。
(当方プリンタが壊れているので確認できませんが、スプールに溜まるとこまでは確認しました)
で、本題なのですが、印刷部分のソースを、withステートメントを使用して
With Printer
.Print ”Printer test”
.EndDoc
End With
のように記述していませんか?
withで囲んでしまうと
「メソッドまたはデータ メンバが見つかりません。」
のエラーになります。
(このことが上記URL内で記述されています。)
よって、withで囲まないで書けばOKだと思うのですが。
的外れだったらごめんなさい。
まさにWith Printerで記述していました。
しかし、printの基本思想がDebug用とは。。
で、一般的にはprintの代わりに使うものは何なのかが気になるところです。