tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルEXCELファイル一括印刷について
記事No498
投稿日: 2003/10/27(Mon) 15:36
投稿者あずまん
[OSのVer]:WindowsXP    [VBのVer]:VB.NET
 はじめまして。いつも有意義に活用させてもらっています。
行き詰まった事があり、どなたかお教え頂けたら、と思います。

 VB.NETにてあるフォルダ内のEXCELファイル(250前後、一ファイル
あたり2〜70ページ、合計約2,000ページ分)を一括印刷しようとしています。
※処理内容は下記をご覧下さい。
 実行したところ、130ファイルあたりでエラーが発生、処理が中断してしまいます。
処理自体は問題なく、スプール・メモリの関係かと思われるのですが。
 解決策として以下方法を考えたのですが、
「印刷指示のループの中で現在発行されている印刷キュー数を取得し、
例えばそれが30を越えたら10以下になるまで処理待ちをさせる」
といったことは可能でしょうか?
「キュー数を取得する」具体的な処理記述が分からなかったので...。

 すみませんが宜しくお願いします。

※以下処理、変数宣言やテーブル抽出等は省いてあります。
'特定テーブルが存在する間ループさせる
Do Until objOradb.Eof = True
    'Excelファイル名を取得
    strXlsName = strDirName & "\" & CStr(objOradb.Fields("送付先
番号").value) & ".xls"

    'Excelファイルが存在すれば印刷指示処理を実行する
    If System.IO.File.Exists(strXlsName) Then

        '出力
        xlAPP = CType(CreateObject("Excel.Application"), Object)
        xlBook = CType(xlAPP.Workbooks.Open(strXlsName), Excel.Workbook)
        xlSheet = CType(xlBook.Worksheets(1), Excel.Worksheet)

        '−−−−−−−−−−−−−−−−−−−−−−−−
        '印刷処理件数により処理を一時停止する処理を追加?
        '−−−−−−−−−−−−−−−−−−−−−−−−

        'ブック内全シートを印刷
        xlBook.Sheets.PrintOut()

        'Excelを閉じる
        xlAPP.Quit()

        xlSheet = Nothing
        xlBook = Nothing
        xlAPP = Nothing
    End If

    objOradb.MoveNext()
Loop

[ツリー表示へ]
タイトルRe: EXCELファイル一括印刷について
記事No499
投稿日: 2003/10/27(Mon) 17:06
投稿者あずまん
[OSのVer]:WindowsXP    [VBのVer]:VB.NET

 自己レスで何なんですが...

>   xlAPP = CType(CreateObject("Excel.Application"), Object)

をループ前に持って行き、ループ内ではブック・シートのオープン・クローズのみ
行うようにしてみました。
 修正前コードですとプロセスが幾つも開き、メモリをかなり食っていたと
思われます。
 ただ、テストに際し、

>   xlBook.Sheets.PrintOut()

をコメントアウトしての実行だった為、本当に印刷をかけた時に
果たして上手くいくだろうか?という疑問が残るのですが...。
(処理時間、プリンタの占有調整の為すぐにはテストできずすみません)

 もし他に良い方法等あれば引続き情報をお願いします。

[ツリー表示へ]
タイトルRe^2: EXCELファイル一括印刷について
記事No502
投稿日: 2003/10/27(Mon) 22:41
投稿者花ちゃん
ここのExcel&Word関係の Excel & Word 関係過去のQ&A一覧表 の中のNo.1756とNo.1761が
参考になるかと思います。

[ツリー表示へ]
タイトルRe^3: EXCELファイル一括印刷について
記事No504
投稿日: 2003/10/28(Tue) 09:22
投稿者あずまん
ありがとうございます。Q&A一覧の方まで確認しておりませんでした。
早速試してみます。

[ツリー表示へ]