| 
    
     |  | ▼ケメ子 さん: >今回は、フォルダの中に40近くのファイルがあり、これらすべてのファイル名と同じ名前で(先頭に【作業】とつきます)ひな形ファイルをコピー、保存したいと思っています。
 Sub Macro21()
 Dim wb   As Workbook
 Dim strDirA As String
 Dim strDirB As String
 Dim wbA   As Workbook
 Dim wbB   As Workbook
 Dim sht   As Worksheet
 Dim shtB  As Worksheet
 Dim FSO   As Object
 Dim FC   As Object
 Dim F    As Object
 
 strDirA = ThisWorkbook.Path & "\A\"
 strDirB = ThisWorkbook.Path & "\B\"
 
 Set FSO = CreateObject("Scripting.FileSystemObject")
 Set FC = FSO.GetFolder(strDirA).Files
 
 AppActivate Application.Caption
 Application.ScreenUpdating = False
 For Each F In FC                  ' Aフォルダの中の
 If Right(F.name, 4) = ".xls" Then        ' エクセルファイルで
 If FSO.FileExists(strDirB & F.name) Then    ' Bフォルダに同じ名前があったら
 
 ' Step1 : Cフォルダの作業用ファイルのひな形を開く。
 ' その際、ひな形は「読み取り専用を推奨する」になっているので、
 ' このダイアログを「いいえ」(編集可能で開く)にして開く
 DoEvents
 SendKeys "{TAB}{ENTER}"
 Set wb = Workbooks.Open(Filename:=ThisWorkbook.Path & "\C\雛形1.xls", ReadOnly:=False)
 
 ' Step2 : 開いたひな形に、Aフォルダと、Aフォルダと同名のBフォルダのファイル
 ' から転記作業を行う
 Set wbB = Workbooks.Open(strDirB & F.name) ' Bフォルダのエクセルを開く
 ' シートのコピーは前回のもので書き直してください。
 For Each shtB In wbB.Worksheets       'シートをコピー
 On Error Resume Next
 Set sht = wb.Worksheets(shtB.name)
 If Not sht Is Nothing Then
 shtB.Cells.Copy
 sht.Cells.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
 SkipBlanks:=False, Transpose:=False
 End If
 On Error GoTo 0
 Next
 
 ' Step3             ' Bフォルダに「作業」を付けて保存
 Application.DisplayAlerts = False
 wb.SaveAs Filename:=strDirB & "作業" & F.name, _
 FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
 ReadOnlyRecommended:=False, CreateBackup:=False
 wb.Close
 wbB.Close False
 Application.DisplayAlerts = True
 End If
 End If
 Next
 Set FSO = Nothing
 Application.ScreenUpdating = True
 End Sub
 
 |  |