
お世話になります。
現在、複数のファイルを指定し、一括で印刷をする処理を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で質問しましょう!
似たような質問が見つかりました
- UNIX・Linux テキストファイルをページ番号付きでコマンドラインから印刷したい 1 2023/02/22 12:47
- Visual Basic(VBA) VBAで不特定枚数印刷をしたいです。 4 2022/08/02 07:30
- Excel(エクセル) Excel VBAプルダウンの値を変えながら2枚ずつ印刷する方法? 4 2022/05/27 13:04
- 年賀状作成・はがき作成 Wordによる宛名印刷 2 2023/01/04 15:36
- UNIX・Linux Ubuntu22.04、nanoエディタの使い方について 2 2022/10/24 19:50
- その他(音楽・ダンス・舞台芸能) チケットに座席番号のみを印刷する方法 4 2023/02/10 11:21
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Excel(エクセル) エクセルでキーリストからデータを取り出して1枚1枚印刷するには? 11 2022/06/27 09:52
- Excel(エクセル) エクセルの印刷マクロについて質問があります。 現在、下記のマクロで印刷しています。Sheet1のD6 5 2023/06/12 10:59
- プリンタ・スキャナー EPSON プリンターのインクについて 4 2022/11/26 22:33
このQ&Aを見た人はこんなQ&Aも見ています
-
Excel 複数のシートの印刷順の指定について
Excel(エクセル)
-
Excel VBAによる連続印刷について処理の順番
Excel(エクセル)
-
VBAでホルダー内のPDFを一括印刷したい
Excel(エクセル)
-
-
4
EXCEL VBAでPDFファイルを開いて印刷
Visual Basic(VBA)
-
5
複数のEXCELシートの印刷順の指定
Excel(エクセル)
-
6
プリンタに200~1000くらい印刷ジョブを送ると印刷順が狂う
プリンタ・スキャナー
-
7
ExcelVBAでPDFを閉じるソース
その他(Microsoft Office)
-
8
PDFファイルを順番通りに印刷するためには?
その他(ソフトウェア)
-
9
PDFファイルを開き、印刷し、閉じるマクロ
Visual Basic(VBA)
-
10
印刷の順序が逆になる
プリンタ・スキャナー
-
11
VBA PDFファイル印刷後のAcrobatReaderDCの起動画面を閉じたい
Excel(エクセル)
-
12
フォルダ内のexcelファイルを順に開いて印刷して閉じるマクロを作りたいのでご教授お願いします。
Excel(エクセル)
-
13
vbaでPDFファイルが印刷されない
Visual Basic(VBA)
-
14
EXCEL ページを指定してPDF出力するVBAを教えてください。
PDF
-
15
Excel 複数印刷範囲設定と、印刷順序
Excel(エクセル)
-
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でPDFファイルが印刷されない
-
クリレポのプリンタ設定について
-
印刷ダイアログを表示させない方法
-
プリンタとジョブのステータス...
-
VBAでエクセルからワードへの差...
-
~の文字化けについて
-
スプーラを使わずに印刷する
-
URLを指定して直接印刷って出来...
-
C++Builder5で画像データを用紙...
-
ACCESSで設定した帳票の用紙サ...
-
VBAで印刷スプール終了の判定を...
-
VBからプリンタに出力する時に...
-
A4の2枚をA3の1枚にする編集方法?
-
VBでファイルを指定して印刷
-
出力するプリンタを指定したい。
-
サーバーで作成したPDFを直接印...
-
PHPでPDFファイルの直接印刷
-
VBAで不特定枚数印刷をしたいで...
-
Accessフォームで全レコードを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
印刷ダイアログを表示させない方法
-
vbaでPDFファイルが印刷されない
-
印刷ダイアログを表示させたくない
-
印刷要求順番と印刷出力順番が...
-
A4の2枚をA3の1枚にする編集方法?
-
オートメーションエラー(214741...
-
VBscriptでPDFファイルを直接印...
-
プリンターを指定して印刷するには
-
EXCELファイルの複数ダウンロー...
-
ACCESSで設定した帳票の用紙サ...
-
VB2005から複合機を使い自動FAX...
-
VBAで印刷スプール終了の判定を...
-
PHPでPDFファイルの直接印刷
-
2回以上PDFをコピーや印刷がで...
-
テキストファイル印刷 .net VB...
-
VBAで印刷の成功判定
-
VBでExcel印刷する時のプリンタ...
-
VB.NET+ActiveReports で印刷...
-
クリレポのプリンタ設定について
-
VB6上から印刷ダイアログを表示...
おすすめ情報