
お世話になります。
現在、複数のファイルを指定し、一括で印刷をする処理を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 複数のシートの印刷順の指定について
Excel(エクセル)
-
Excel VBAによる連続印刷について処理の順番
Excel(エクセル)
-
VBAでホルダー内のPDFを一括印刷したい
Excel(エクセル)
-
-
4
複数のEXCELシートの印刷順の指定
Excel(エクセル)
-
5
プリンタに200~1000くらい印刷ジョブを送ると印刷順が狂う
プリンタ・スキャナー
-
6
EXCEL VBAでPDFファイルを開いて印刷
Visual Basic(VBA)
-
7
ExcelVBAでPDFを閉じるソース
その他(Microsoft Office)
-
8
印刷の順序が逆になる
プリンタ・スキャナー
-
9
VBA PDFファイル印刷後のAcrobatReaderDCの起動画面を閉じたい
Excel(エクセル)
-
10
フォルダ内のexcelファイルを順に開いて印刷して閉じるマクロを作りたいのでご教授お願いします。
Excel(エクセル)
-
11
PDFファイルを順番通りに印刷するためには?
その他(ソフトウェア)
-
12
vbaでPDFファイルが印刷されない
Visual Basic(VBA)
-
13
Excel 複数印刷範囲設定と、印刷順序
Excel(エクセル)
-
14
PDFファイルを開き、印刷し、閉じるマクロ
Visual Basic(VBA)
-
15
EXCEL ページを指定してPDF出力するVBAを教えてください。
PDF
-
16
VBAで印刷スプール終了の判定をする
Visual Basic(VBA)
-
17
Excelで複数のファイルを1度に印刷したいです。
Excel(エクセル)
-
18
PDFファイルを開かずに印刷したい
Visual Basic(VBA)
-
19
エクセルマクロによる大量ファイルの一括印刷方法
Excel(エクセル)
-
20
印刷マクロ【エクセル】エクセルからワードを印刷する
その他(Microsoft Office)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAで印刷の成功判定
-
PHPでPDFファイルの直接印刷
-
印刷ダイアログを表示させない方法
-
オートメーションエラー(214741...
-
EXCELファイルの複数ダウンロー...
-
印刷ダイアログを表示させたくない
-
2回以上PDFをコピーや印刷がで...
-
クリレポのプリンタ設定について
-
印刷要求順番と印刷出力順番が...
-
イベントプロシージャ 印刷が...
-
Eclipseを使ってソースを印刷し...
-
PHPでPDFの自動印刷
-
VBscriptでPDFファイルを直接印...
-
vbaでPDFファイルが印刷されない
-
phpでの自動印刷
-
ACCESSで設定した帳票の用紙サ...
-
[Visual Studio] ソースの印刷...
-
VBからプリンタに出力する時に...
-
プログラムからプリンタジョブ...
-
Javaを使って、プログラムから...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
印刷要求順番と印刷出力順番が...
-
印刷ダイアログを表示させない方法
-
印刷ダイアログを表示させたくない
-
vbaでPDFファイルが印刷されない
-
2回以上PDFをコピーや印刷がで...
-
プリンターを指定して印刷するには
-
PHPでPDFファイルの直接印刷
-
クリレポのプリンタ設定について
-
ACCESSで設定した帳票の用紙サ...
-
VBscriptでPDFファイルを直接印...
-
VBAで印刷スプール終了の判定を...
-
Eclipseを使ってソースを印刷し...
-
VB2005から複合機を使い自動FAX...
-
Javaから直接プリンターへ印刷...
-
C++Builder5で画像データを用紙...
-
VBAで印刷の成功判定
-
F-BASICで印刷データをスプール...
-
オートメーションエラー(214741...
-
VBAで不特定枚数印刷をしたいで...
-
EXCELファイルの複数ダウンロー...
おすすめ情報