指定のシート枚数をマクロで印刷
こんにちは。
エクセルマクロを使用しての印刷に関して、皆様の知恵をお借りしたく投稿させて頂きました。
現在は
・マクロを実行し印刷したいエクセルブックを開く。
・指定した名前のエクセルシートの選択。
・選択した名前のシートの印刷。
となります。
それを
・マクロを実行し印刷したいエクセルブックを開く。
・2枚目のシートから4枚目のシートまでを選択。
・空白のシートを追加(両面印刷する際に奇数だと次のファイルが同じ紙の裏面に印刷されてしまうため)
・2枚目から4枚目シート+空白シートの印刷。
と変更したいのです。
※2~5枚目シート選択、1~6枚目シート選択など、変更できると助かります。
※偶数シートの印刷の場合は空白シート追加は不要となります。
1000近くのエクセルブックを印刷しているのですが、シート名が統一されていないため、マクロが止まってしまい困っておりました。
なんとか知恵をお貸し頂けないでしょうか。
宜しくお願い致します。
下記に現在使用しているマクロのコードを提示致します。
---------------------------------------------------------------------------------------------------------
Sub Excelファイルの指定したシートのみ印刷_資料2から資料3Ver()
'複数のファイルを選択する
Dim vntFileName As Variant
Dim vntGetFileName As Variant
Dim B As Boolean
Dim W As Workbook
'ファイルを開くダイアログを開きます
vntFileName = _
Application.GetOpenFilename( _
FileFilter:="xlsxファイル(*.xlsx),*.xlsx" & _
",エクセルファイル(*.xls),*.xls" _
, FilterIndex:=1 _
, Title:="印刷するファイルを選択" _
, MultiSelect:=True _
)
If IsArray(vntFileName) Then
For Each vntGetFileName In vntFileName
Set W = Workbooks.Open(vntGetFileName)
If B Then
Sheets(Array("資料2", "資料3", "資料4")).Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1 '通常設定のプリンタで出力
Else
Sheets(Array("資料2", "資料3", "資料4")).Select
Application.Dialogs(xlDialogPrint).Show '印刷ダイアログを表示
B = True
End If
W.Close False
Next
End If
End Sub
----------------------------------------------------------------------------------------------------
お礼
素晴らしい的確な回答ありがとうございました。 また何かありましたらよろしくお願いします。