複数のExcelファイルの全シートを全部Docuworksにしたいのでマクロをパクった
神Excelカルテみたいなものを扱うお仕事をもらうと、いっぱい出力しないと行けません。
ちまちまプリントアウトするのは、不毛なのですが、クソ忙しいと不毛なことをし続けることになります。
しかしちょっと待ってほしい。手抜きをしようジャマイカ?
まあこんなこと当たり前のようにやっている人は以下省略で結構です。
excel 複数ファイル 印刷 – Google 検索でググりますと、なんかそれっぽいものが出てきます。
【ExcelVBA】複数のExcelファイルの全シートを一括印刷するマクロ|もりさんのプログラミング手帳
この辺りがビンゴ!と思いまして、動かしてみました。
GO!
ダメでした。
どうも wb.Sheets.PrintOutってのがダメらしい。
ここを書き換える能力は私には無い。他のネタを探した。
こうググってみたら・・・ここに行き着いた。
ActiveWorkbook.PrintOut Preview:=Trueってのをバグったところに入れたら良いんじゃないか?
Preview:=Trueは、プレビューで止まるからFalseにしてしまおう。
/*Sub 一括印刷()
'ダイアログで印刷対象ブックを開く(複数ファイル指定可)
Dim FileName As Variant
FileName = Application.GetOpenFilename _
("Microsoft Excelブック,*.xls?", MultiSelect:=True)
If Not IsArray(FileName) Then
Exit Sub
End If
Dim cnt As Long '選択ファイル数のカウント
cnt = UBound(FileName)
Dim rc As Long '実行確認
rc = MsgBox(cnt & "ファイルが選択されました。" & vbCrLf & _
"印刷を開始しますか?", vbOKCancel + vbInformation)
If rc = vbOK Then
Dim n As Long '印刷対象のブック数
For n = LBound(FileName) To UBound(FileName)
Dim wb As Workbook '印刷対象ブック
Set wb = Workbooks.Open(FileName(n))
ActiveWorkbook.PrintOut Preview:=False '全シート印刷
wb.Close False '保存しないで閉じる
Next n
MsgBox "印刷終了しました。"
End If
End Sub
*/
あ・・・一発で通っちゃった。
パクってブログにしてすいません。
忘れないようにするための自分用のメモ帳です。
マクロを走らせるとファイルを選ぶように言われるので、ファイルを選択する。
あとは、勝手に走り出す。いつも使うプリンターがDocuworksにしておけば良い。
Docuworksデスクで、原稿チェックがてら要る部分を残して削ったら良いのです。
これで少し仕事が楽になりました。
でも、重たいファイルを複数一気にやろうとするとメモリ不足がでて落ちます。
メモリ不足がでないまでも、白紙ページをたくさん作って「仕事しました」と言います。
(まるで私のようだ。)
現場からは以上です。
(2022/02/17追記)
ちょっとだけ改良した。
複数のExcelファイルの全シートを全部Docuworksにしたいのでマクロの「メモリが足りません」を解消したつもり。 | 地質屋さんと呼ばないで