Excelを1ブックにまとめる


指定したフォルダ内の複数のExcelファイルを1つのブックにまとめるVBS。
まとめた結果シート名が重複したらダメかも。

'--------------------------------------------------------------------------------------
'
'	Excel 1ブックにまとめる
'			(指定したフォルダにあるExcelを1ブックに分割します)
'	
'	注意点	スクリプト実行前にすべてのExcelアプリケーションを終了してください。
'		スクリプト実行中はマウス、キーボードを使用しないでください。
'		このスクリプトが異常終了した場合はExcelのプロセスを手動で終了してください。
'
'--------------------------------------------------------------------------------------
'★マージ対象フォルダ
Const SAVE_ELS = "C:\Users\harada\Desktop\エビデンス\エビデンス"

'★保存先フォルダ
Const SAVE_DIR = "C:\output\"

'★保存先ファイル名
Const SAVE_FILE ="test" 



	'このディレクトリのファイル一覧を取得する
	Set fileSystem   = CreateObject("Scripting.FileSystemObject")
	Set targetFolder = fileSystem.getFolder(SAVE_ELS)
	Set fileList = targetFolder.Files

	'Excelオブジェクトを開く
	Set Excel  = CreateObject("Excel.Application")
	Excel.DisplayAlerts = False

	'新しくブックを作成し、コピー
	Set Addbook = Excel.WorkBooks.Add

	'ファイルの終端までループ
	For Each wkFile In fileList


        	Set wkBook = Excel.WorkBooks.Open(SAVE_ELS & "\" & wkFile.Name)

		'シートの数ループ
		For i = 1 To wkBook.Sheets.Count

			'シートオブジェクトを取得
			Set wkSheet = wkBook.Sheets(i)

			wkSheet.Copy ,Addbook.Sheets(Addbook.Sheets.Count)
	
		
			Set wkSheet = Nothing

		Next

		wkBook.Close	
		Set wkBook = Nothing
	Next


	'名前を付けて保存
	Addbook.SaveAs SAVE_DIR & SAVE_FILE  & ".xlsx"

	Addbook.Close
	Set Addbook = Nothing

	Set wkBook = Nothing
	Set Excel = Nothing

	msgbox "出力を完了しました。"