エクセルを選択して開き印刷するマクロ
お世話になっております。
タイトル通りのマクロの作成をしているのですが、行き詰ってしまい質問させていただきました。
説明させていただきますと、、
実行し、複数のエクセルbookを選択し開くとシートを全選択し通常使うプリンタで印刷をする。というマクロなんですが、改善していきたい事がありまして、助言をいただきたく思っております。
1.複数選択して開いても印刷されるのは開いた後アクティブになっているbookのみ。これを全て開いたbook印刷にしたい。
2.現在は通常使うプリンタで印刷するようにしていますが、複数選択し開いた時に始めの1回だけプリンタの設定画面になるようにしたい。
3.開いて印刷し閉じるだけなのにリンクなどが残っており、「保存しますか?」という文章が出るときがありますが、それを聞かれないように保存せずに閉じる。と自動的に実行してくれる。
2と3は、出来ればそうなってほしいという事なので、最重要は1番です。120個のエクセルを(1つあたりの容量は少ない)印刷しなければならないので困っております。一気に120個印刷かけるわけではなく10個位を分けてマクロ実行で印刷しようと思っております。
コードを載せさせて頂きますので、「ココをこう直せば出来るよ」など簡単な事でも結構ですのでアドバイスよろしくお願いいたします。
-----------------------------------------------------------
Sub 複数のファイルを選択して開く_エクセル版()
'複数のファイルを選択する例
Dim vntFileName As Variant
Dim vntGetFileName As Variant
'ファイルを開くダイアログを開きます
vntFileName = _
Application.GetOpenFilename( _
FileFilter:="エクセルファイル(*.xls),*.xls" & _
",CSVファイル(*.csv),*.csv" _
, FilterIndex:=1 _
, Title:="印刷するファイルを選択" _
, MultiSelect:=True _
)
'ファイルが選択されているとき(vntFileNameが配列型)は
'選択した全てのファイルをWorkbooks.Openメソッドを使い開きます。
If IsArray(vntFileName) Then
For Each vntGetFileName In vntFileName
Workbooks.Open vntGetFileName
Worksheets.Select 'シート全選択
Next
ActiveWindow.SelectedSheets.PrintOut Copies:=1 '通常設定のプリンタで出力
End If
ActiveWindow.Close 'ファイルを閉じる
End Sub