複数のMS-Wordのドキュメントを1つにまとめる
たくさんあるMS-Wordのドキュメントを1つにまとめたくてスクリプト作ってみた。
でもいまいちだな。
セクション単位で追加してるけど、印刷設定は元のドキュメントを引き継いでくれないから、
常に先頭の印刷書式に依存してしまう。
全部同じなら使えそうなので、一応メモしておく。
(エラーとはか考えてない)
Option Explicit ' 検索対象ファイル拡張子 Dim targetFileExp targetFileExp = Array("doc", "docx") Dim objFso Set objFso = CreateObject("Scripting.FileSystemObject") Dim objWord Set objWord = CreateObject("Word.Application") Dim objNewDoc Dim strInFile Dim strOutFile dim objSelection ' 一応見せておく objWord.Visible = True ' カレントディレクトリのファイルリストから抽出する Dim exp Dim file For Each exp in targetFileExp For Each file In objFso.GetFolder("./").Files if UCase(objFso.GetExtensionName(file)) = UCase(exp) Then strInFile = file.path If strOutFile = "" Then ' 親フォルダ名を結合ファイル名に strOutFile = objFso.BuildPath( file.ParentFolder , objFso.GetFileName(file.Name) & "_ALL." & objFso.GetExtensionName(file) ) WScript.Echo "doc結合:" & strOutFile 'Set objNewDoc = objWord.Documents.Add ' 新規の場合はこっち Set objNewDoc = objWord.Documents.Open(strInFile) ' 先頭の書式に合わせる場合はこっち Set objSelection = objWord.Selection Else WScript.Echo " +:" & file.Name objSelection.InsertFile(strInFile) objSelection.InsertParagraphAfter objSelection.InsertBreak(2) ' 2:wdSectionBreakNextPage objSelection.Collapse(0) End if End If Next Next objSelection.WholeStory() objSelection.Fields.Update() objNewDoc.SaveAs2 strOutFile objNewDoc.Close objWord.Quit set objFso = Nothing set objNewDoc = Nothing set objWord = Nothing MsgBox "終了"