| 
    
     |  | お世話になります。t.vと申します 
 自分の前任者が作成したマクロの改修を依頼されまして、改修するマクロは、
 【対象フォルダに格納されているexcelファイルを全て印刷する】です。
 細かい処理でプリンタ仕様で99ファイルで一旦ストップしたり、印刷するファイル名の書き出し等がありますが、
 今回改修したい部分は【excelファイル】→【全ファイル】に改修する予定です。
 当方、VBAは勉強中の身で処理内容がほぼ解らず対応方法が解りません。
 ファイル拡張子部分を追加したりしたのですがどうにもうまくいきませんでした。
 どうかご教授願います。
 
 現在使用してるマクロを以下に記載しますが、全く別のマクロを提示頂いて構いません。
 一番の目的は【対象フォルダ内のファイルを全て(txt,excel,word,pdf)印刷する】です。
 *----------------------------------------*
 Sub 指定ドライブのファイルの一覧を作成する()
 
 Application.ScreenUpdating = False
 
 Dim xxx As Range
 
 Dim FSO As Object
 Dim fol As Object
 Dim Fil As Object
 Dim FileBuf As Object
 
 Dim Subfol As Object
 Dim SubFil As Object
 Dim SubFolderBuf As Object
 
 Dim count As Integer
 
 Dim PrintFlag As Boolean
 PrintFlag = False
 
 Const c_div_cnt As Integer = 99       '処理分割単位(ファイル数)
 Dim print_cnt As Integer          '印刷済みファイル数カウンタ
 Dim total_print As Integer         '印刷済みファイル総数
 
 Set xxx = Worksheets("Sheet1").Range("b2")
 
 print_cnt = 0
 total_print = 0
 
 Worksheets("Sheet1").Activate
 Range("A:A").ClearContents         'クリアする
 
 
 Set FSO = CreateObject("Scripting.FileSystemObject")  'ファイルシステムオブジェクトのインスタンス化
 
 On Error Resume Next
 Set fol = FSO.Getfolder(xxx)          'フォルダを取得
 Set Fil = fol.Files               'ファイルを取得
 
 Set Subfol = Nothing              'サブフォルダを検索
 Set Subfol = FSO.Getfolder(xxx).SubFolders   'サブフォルダを取得
 On Error GoTo 0
 
 'もし、ファイルがフォルダ内に見つからない場合、何もしない
 If fol.Files.count = 0 Then
 
 Else
 count = 1
 For Each FileBuf In Fil
 
 If (Right(Dir(FileBuf.Path), 4) = ".xls") Or (Right(Dir(FileBuf.Path), 4) = "xlsx") Or (Right(Dir(FileBuf.Path), 4) = "xlsm") Then
 PrintFlag = True  'ひとつでもxlsファイルが見つかった場合に、PrintFlagをTrueにする
 Cells(count, 1) = FileBuf.Path
 count = count + 1
 End If
 Next
 
 End If
 
 
 'もし、サブフォルダがフォルダ内に見つからない場合、何もしない
 If Subfol Is Nothing Then
 
 Else
 For Each SubFolderBuf In Subfol
 
 Call Loop_LISTUP(SubFolderBuf.Path, count, PrintFlag)
 
 Next
 End If
 
 Application.ScreenUpdating = True
 
 
 If PrintFlag Then
 If vbCancel = MsgBox("全部で" & (count - 1) & "ファイルを印刷します", vbOKCancel) Then
 Exit Sub
 End If
 If c_div_cnt < (count - 1) Then
 MsgBox c_div_cnt & "ファイルを印刷する毎に処理を一旦停止します", vbOKOnly
 End If
 
 For n = 2 To count
 Workbooks.Open Worksheets("Sheet1").Cells(n - 1, 1).Value
 Worksheets(1).PageSetup.LeftHeader = "&F"
 ActiveWorkbook.PrintOut Copies:=1, Collate:=True
 Worksheets(1).Activate
 ActiveWindow.Close False
 
 print_cnt = print_cnt + 1
 If c_div_cnt = print_cnt Then
 '印刷済数カウントアップ
 total_print = total_print + print_cnt
 'カウンタクリア
 print_cnt = 0
 If 0 < (count - 1) - total_print Then
 If vbCancel = MsgBox("残り" & (count - 1) - total_print & "ファイルです。" & Chr(13) & Chr(10) & _
 "プリンタ出力を完了させてからOKを押してください", vbOKCancel) Then
 Exit Sub
 End If
 End If
 End If
 Next
 
 End If
 
 Application.ScreenUpdating = True
 '  Cells(1, 結果).Clear                  'クリアする
 
 End Sub
 
 Private Sub CommandButton1_Click()
 Call 指定ドライブのファイルの一覧を作成する
 End Sub
 
 
 Sub Loop_LISTUP(ByVal target As String, ByRef count As Integer, ByRef PF As Boolean)
 
 Dim FSO As Object
 Dim fol As Object
 Dim Fil As Object
 Dim FileBuf As Object
 
 Dim Subfol As Object
 Dim SubFil As Object
 Dim SubFolderBuf As Object
 
 Worksheets("Sheet1").Activate
 Set FSO = CreateObject("Scripting.FileSystemObject")  'ファイルシステムオブジェクトのインスタンス化
 
 On Error Resume Next
 Set fol = FSO.Getfolder(target)          'フォルダを取得
 Set Fil = fol.Files                 'ファイルを取得
 
 Set Subfol = Nothing
 Set Subfol = FSO.Getfolder(target).SubFolders     'サブフォルダを取得
 On Error GoTo 0
 
 'もし、ファイルがフォルダ内に見つからない場合、何もしない
 If fol.Files.count = 0 Then
 
 Else
 For Each FileBuf In Fil
 
 If (Right(Dir(FileBuf.Path), 4) = ".xls") Or (Right(Dir(FileBuf.Path), 4) = "xlsx") Or (Right(Dir(FileBuf.Path), 4) = "xlsm") Then
 PF = True  'ひとつでもxlsファイルが見つかった場合に、PFをTrueにする
 Cells(count, 1) = FileBuf.Path
 count = count + 1
 End If
 
 Next
 End If
 
 'もし、サブフォルダがフォルダ内に見つからない場合、何もしない
 If Subfol Is Nothing Then
 Else
 For Each SubFolderBuf In Subfol
 
 Call Loop_LISTUP(SubFolderBuf.Path, count, PF)
 
 Next
 End If
 
 End Sub
 *----------------------------------------*
 
 |  |