Word2010のVBAから複数ファイルを印刷する
Word2010のVBAから300個くらいのファイルを印刷しようとして、はまった。
- プリンタのスプーラにがんがん溜まってしまい、溜まってるの20個を過ぎたあたりから、PCが遅くなりだし、しまいには固まってしまった。
- 複数ページあるファイルなのに、最初の1ページしか印刷されないことが多発した。
で、試行錯誤した結果、以下でできるようになった。激しく実行環境依存だと思うが、一応、書いておく。
Private Sub PrintAFile(fName As String)
Dim wrd As Word.Application
Dim doc As Word.Document' Word上のVBAでやってる場合でも、以下のように別途Wordオブジェクトを作っておくと、
' 複数ページあるファイルが全部印刷されるようになった。
' 理由はわからん。
Set wrd = CreateObject("Word.Application")
Set doc = wrd.Documents.Open(fName)' 次行をしておくと、スプーラに溜まらない
wrd.Options.PrintBackground = False
doc.PrintOut
doc.Close
wrd.Quit
End SubSub PrintFiles()
Call PrintAFile("G:\あああ.docx")
Call PrintAFile("G:\いいい.docx")
Call PrintAFile("G:\ううう.docx")
' 以下、大量に印刷するファイル名を列挙する
' 同じフォルダに集めて、そのフォルダ内のファイルを全部印刷するように書く方が楽かも。
End Sub