2016-11-16 10 views
1

プリンタオブジェクトの作成中にVB 6で問題が発生しました。 基本的には、印刷が必要な正しいトレイを設定できるように、プリンタオブジェクトを作成する必要があります。VBでプリンタオブジェクトを作成する方法

私は私とPrinter Nameを持っています。

私がオンラインで見つけることができるすべてのコードには、使用可能なすべてのプリンタをループし、プリンタ名と一致するコードが含まれています。

可能な方法はありますかプリンタオブジェクトprnをプリンタ名から直接作成します。

ご協力いただければ幸いです。

+0

VB 6またはVBA - どちらがそれですか –

+0

IDEを参照している場合、VB 6です。 – varuog

+0

なぜVBAタグですか? –

答えて

2

できません。 VB6プリンタコレクションは、名前ではなくインデックスによってのみアクセスされます。 Visual Studio 6 Printer Object, Printers Collectionを参照してください。

したがって、必要なプリンタのコレクションを検索する必要があります。たとえば、

Private Function FindPrinter(PrinterName As String) As Printer 
    Dim i As Integer 
    For i = 0 To Printers.Count - 1 
    If Printers(i).DeviceName = PrinterName Then 
     Set FindPrinter = Printers(i) 
     Exit For 
    End If 
    Next i 
    Exit Function 
End Function 

上記の説明は、探しているプリンタがコレクションにない状況を処理しません。その条件をカバーするロジックを追加したいと思うでしょう。あなたがしたいことは、特定のタスクと要件に固有のものです。この例も大文字と小文字を区別する名前の検索ですので、それも覚えておいてください。

+0

返事をありがとう。あなたが言及したコードは、私のアプリケーションで現在使っているコードです。しかし、多数のプリンタ(2500+)がある場合、これは非常に遅くなる傾向があります。そこで、回避策を探していました。 – varuog

+0

プリンタを切り替える場合を除き、毎回プリンタのコレクションを検索する必要はありません。アプリケーションの起動時(またはユーザーの選択など)に検索し、使用しているプリンタオブジェクトへの参照を保持します。 Printersコレクションを検索する際のパフォーマンスについてはほとんど問題ありません。 – MarkL

関連する問題