
お世話になります。
現在、複数のファイルを指定し、一括で印刷をする処理をVBで作成しています。
●問題
印刷される順番には意味があり、要求順に出力してほしいのですが、VB側でかけている印刷要求の順番と、プリンタのジョブにたまる順番が違う。
ループ内で1ファイル単位で印刷要求をかけているので、VB側は問題ないと思うのですが、原因がわかりません。
(ちなみにブレイクポイントをおき、1枚1枚印刷されるのを確認しながら行うと正常に印刷されます。)
また、Sleep関数を使用し10秒待ちを入れても出力順が変わってきます。
問題解決のきっかけになれば幸いです。
宜しくお願い致します。
---- 環境 ----
Windows2000
VB6.0
プリンタ xerox - DocuCentre607CP
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
ShellExecute()ではだめですね。
印刷するものがどんなもんだかわかりませんが、出力させるアプリの作りによって順番が狂っても不思議ではありません。
なので、確実に印刷が終わってから次のファイルを印刷するようにする必要があります。
ShellExecuteEx()で印刷アプリを起動し、取得したプロセスハンドルを使用してWaitForSingleObject()で起動した印刷アプリが終了するまで次の印刷を行わないようにするのがいいかと。
ご意見ありがとうございます。
その方法も考えました。(まだ試してないですけど。)
今XEROXの方に何が問題なのか聞いている段階です。
今回の場合、印刷速度を重視しているので、XEROXの解答で対応出来ないようであればそちらを試したいと思います。
No.2
- 回答日時:
それはヘンですね。
私はそのような現象に陥ったことはありません。
帳票ツールは何を使用しているのでしょうか?
あるいは、VBのPrinterオブジェクトにより出力しているのでしょうか?
また、後者の場合、EndDocメソッドの発行は適切な順番で行われてますか?
それでもダメな場合は、出力した後にDoEvents関数を挿入してみてはいかがでしょうか?
「確認しながら行うと」というのが「メッセージボックスを出力しOKボタンを押すと」ということでしたら、Windowsに制御が渡ってないことが原因かもしれませんので試してみてください。
この回答への補足
'実行する操作を指定
srtOperation = "print"
'ファイル名を指定
strFileName = ファイルパス
'デフォルトディレクトリを指定
strDefaultDirectory = ""
lngExecutableHInstance = _
ShellExecute(Me.hwnd, _
srtOperation, _
strFileName, _
vbNullString, _
strDefaultDirectory, _
SW_SHOWNORMAL)
上記の処理で印刷要求をかけています。
DoEvents関数ではダメでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
Excel VBAによる連続印刷について処理の順番
Excel(エクセル)
-
Excel 複数のシートの印刷順の指定について
Excel(エクセル)
-
プリンタに200~1000くらい印刷ジョブを送ると印刷順が狂う
プリンタ・スキャナー
-
-
4
複数のEXCELシートの印刷順の指定
Excel(エクセル)
-
5
印刷の順序が逆になる
プリンタ・スキャナー
-
6
Excel 複数印刷範囲設定と、印刷順序
Excel(エクセル)
-
7
PDFファイルを開き、印刷し、閉じるマクロ
Visual Basic(VBA)
-
8
EXCEL VBAでPDFファイルを開いて印刷
Visual Basic(VBA)
-
9
VBA PDFファイル印刷後のAcrobatReaderDCの起動画面を閉じたい
Excel(エクセル)
-
10
フォルダ内のexcelファイルを順に開いて印刷して閉じるマクロを作りたいのでご教授お願いします。
Excel(エクセル)
-
11
ExcelVBAでPDFを閉じるソース
その他(Microsoft Office)
-
12
VBAでホルダー内のPDFを一括印刷したい
Excel(エクセル)
-
13
Excelで複数のファイルを1度に印刷したいです。
Excel(エクセル)
-
14
PDFファイルを順番通りに印刷するためには?
その他(ソフトウェア)
-
15
エクセルVBAでプリンタプロパティを操作したい
Visual Basic(VBA)
-
16
VBA★PDFをPDFアプリで印刷しようと思っていますが上手くゆきません
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ACCESSで設定した帳票の用紙サ...
-
VBからプリンタに出力する時に...
-
VBAで印刷の成功判定
-
vbaでPDFファイルが印刷されない
-
PHPでPDFファイルの直接印刷
-
印刷要求順番と印刷出力順番が...
-
2回以上PDFをコピーや印刷がで...
-
PDFファイルを印刷し終了するには
-
EXCELファイルの複数ダウンロー...
-
オートメーションエラー(214741...
-
印刷ダイアログを表示させない方法
-
.NETプログラムからの印刷
-
VB6上から印刷ダイアログを表示...
-
A4の2枚をA3の1枚にする編集方法?
-
VBでExcel印刷する時のプリンタ...
-
VBAでエクセルからワードへの差...
-
JAVAアプレットで画像を印刷し...
-
意味不明の実行時エラーで困っ...
-
VBAでArrayListを使う為の「msc...
-
VB6で作成したアプリを配布する...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
2回以上PDFをコピーや印刷がで...
-
印刷ダイアログを表示させない方法
-
印刷要求順番と印刷出力順番が...
-
印刷ダイアログを表示させたくない
-
プリンターを指定して印刷するには
-
クリレポのプリンタ設定について
-
vbaでPDFファイルが印刷されない
-
VBAで印刷の成功判定
-
ACCESSで設定した帳票の用紙サ...
-
PHPでPDFファイルの直接印刷
-
EXCELファイルの複数ダウンロー...
-
A4の2枚をA3の1枚にする編集方法?
-
オートメーションエラー(214741...
-
VBAで印刷スプール終了の判定を...
-
VBからプリンタに出力する時に...
-
VB2008で0ページの印刷ジョブを...
-
ActiveReportsを使って[印刷ダ...
-
Eclipseを使ってソースを印刷し...
-
Javaから直接プリンターへ印刷...
-
VBAにて指定したセルをプルダウ...
おすすめ情報