|
▼はるな さん:
こんばんは
各ブックのシートを、別ブックにコピーするのか、あるブックのあるシートを各ブックにコピーするのか
要件が理解できていませんので、とりあえず、前者で。はずしている確率、85%ぐらい?
勘違いしていたらすててください。
親ブックを作るとか、ボタンを配置するとか、それらは割愛しています。
指定フォルダの各エクセルブックのすべてのシートを1つのブックにまとめ まとめたブックを、
マクロブック名_作成.xls という名前で、マクロブックがあるフォルダに 保存します。
この間、各エクセルブックも、まとめたブックも表示されません。100個もブックがあると時間はかかると思いますが。
それと、シートの数が膨大になりますのでメモリーの関係で、悪名高い(?)1004のエラーが発生するかもしれません。
Sub Sample()
Dim myPath As String
Dim newWb As Workbook, workWB As Workbook
Dim fsoFile As Object
Dim sh As Worksheet
Dim Fso As Object
Dim xlApp As Excel.Application
myPath = "C:\Test" '<== 実際のフォルダ名に
Set xlApp = New Excel.Application
Set Fso = CreateObject("Scripting.FileSystemObject")
For Each fsoFile In Fso.GetFolder(myPath).Files
If LCase(Fso.GetExtensionName(fsoFile.Name)) = "xls" Then
Set workWB = xlApp.Workbooks.Open(Filename:=myPath & "\" & fsoFile.Name)
If newWb Is Nothing Then
Set newWb = workWB
Else
For Each sh In workWB.Worksheets
DoEvents
sh.Copy after:=newWb.Sheets(newWb.Worksheets.Count)
Next
workWB.Close savechanges:=False
End If
End If
Next
Application.DisplayAlerts = False
newWb.SaveAs ThisWorkbook.Path & "\" & ThisWorkbook.Name & "_作成.xls"
newWb.Close
Application.DisplayAlerts = True
xlApp.Quit
MsgBox "処理が終了しました"
End Sub
|
|