Microsoft ExcelでVBAを使用して、フォルダ内のワークブックに各ワークブックからシートをコピーし
-
マクロは、フォルダーC:\ Dataにあるすべてのファイルの最初のワークシートの一部をワークブックの最初のワークシートにコピーします。
-
最初のマクロは通常のコピーを実行し、2番目のマクロは値をコピーします。
各ワークブックの最初のシートを、コードが含まれているワークブックにコピーします。
シート名はブックの名前です。
Sub CopySheet() Dim basebook As Workbook Dim mybook As Workbook Dim i As Long Application.ScreenUpdating = False With Application.FileSearch .NewSearch .LookIn = "C:\Data" .SearchSubFolders = False .FileType = msoFileTypeExcelWorkbooks If .Execute() > 0 Then Set basebook = ThisWorkbook For i = 1 To .FoundFiles.Count Set mybook = Workbooks.Open(.FoundFiles(i)) mybook.Worksheets(1).Copy after:= _ basebook.Sheets(basebook.Sheets.Count) ActiveSheet.Name = mybook.Name mybook.Close Next i End If End With Application.ScreenUpdating = True End Sub
このサブ(TestFile4_values)には、保護されていないワークシートが必要です。または、コードでそれらを保護解除する必要があります。
Sub CopySheetValues() Dim basebook As Workbook Dim mybook As Workbook Dim i As Long Application.ScreenUpdating = False With Application.FileSearch .NewSearch .LookIn = "C:\Data" .SearchSubFolders = False .FileType = msoFileTypeExcelWorkbooks If .Execute() > 0 Then Set basebook = ThisWorkbook For i = 1 To .FoundFiles.Count Set mybook = Workbooks.Open(.FoundFiles(i)) mybook.Worksheets(1).Copy after:= _ basebook.Sheets(basebook.Sheets.Count) ActiveSheet.Name = mybook.Name With ActiveSheet.UsedRange .Value = .Value End With mybook.Close Next i End If End With Application.ScreenUpdating = True End Sub