指定したフォルダにあるExcel印刷設定の情報をcsv形式でテキストファイルに出力するスクリプト。
印刷設定が統一されている確認するために作成してみた。
PageSettingInfoOutput.vbs
'-------------------------------------------------------------------------------------- ' ' Excel PageSetup出力 ' (指定したフォルダにあるExcelファイルのをPageSetupオブジェクトのプロパティを出力する) ' ' 注意点 スクリプト実行前にすべてのExcelアプリケーションを終了してください。 ' スクリプト実行中はマウス、キーボードを使用しないでください。 ' このスクリプトが異常終了した場合はExcelのプロセスを手動で終了してください。 ' '-------------------------------------------------------------------------------------- targetPath = InputBox("出力対象のディレクトリを入力","ディレクトリの指定","") if targetPath = "" then msgbox "出力を中止しました。" else 'このディレクトリのファイル一覧を取得する Set fileSystem = CreateObject("Scripting.FileSystemObject") Set targetFolder = fileSystem.getFolder(targetPath) Set fileList = targetFolder.Files '結果を出力するファイルを作成する Set resultfile = fileSystem.CreateTextFile(targetPath & "\" & "result.txt",True) 'ヘッダを出力 call propatetyHeaderOutput() 'ファイルの終端までループ For Each wkFile In fileList '対象ファイルがExcelならExcelで開く if wkFile.type = "Microsoft Excel ワークシート" then Set Excel = CreateObject("Excel.Application") Set wkBook = Excel.WorkBooks.Open(wkFile) 'シートの数ループする For i = 1 to wkBook.WorkSheets.Count Set xlsSheet = wkBook.WorkSheets(i) 'プロパティを出力 Call propatetyOutput(wkFile.Name,xlsSheet) Next 'Excelを終了する。 wkBook.Close Excel.Quit end if Next msgbox "出力を完了しました。" end if '-------------------------------------------------------------------------------------- ' ' propatety名(ヘッダ)をカンマ区切で出力する ' '-------------------------------------------------------------------------------------- Sub propatetyHeaderOutput() resultVal = "" resultVal = resultVal & "BookName" & "," resultVal = resultVal & "SheetName" & "," resultVal = resultVal & "LeftHeader" & "," resultVal = resultVal & "CenterHeader" & "," resultVal = resultVal & "RightHeader" & "," resultVal = resultVal & "LeftFooter" & "," resultVal = resultVal & "CenterFooter" & "," resultVal = resultVal & "RightFooter" & "," resultVal = resultVal & "LeftMargin" & "," resultVal = resultVal & "RightMargin" & "," resultVal = resultVal & "TopMargin" & "," resultVal = resultVal & "BottomMargin" & "," resultVal = resultVal & "HeaderMargin" & "," resultVal = resultVal & "FooterMargin" & "," resultVal = resultVal & "PrintHeadings" & "," resultVal = resultVal & "PrintGridlines" & "," resultVal = resultVal & "PrintComments" & "," resultVal = resultVal & "CenterHorizontally" & "," resultVal = resultVal & "CenterVertically" & "," resultVal = resultVal & "Orientation" & "," resultVal = resultVal & "Draft" & "," resultVal = resultVal & "PaperSize" & "," resultVal = resultVal & "FirstPageNumber" & "," resultVal = resultVal & "Order" & "," resultVal = resultVal & "BlackAndWhite" & "," resultVal = resultVal & "Zoom" & "," resultVal = resultVal & "PrintErrors" resultfile.WriteLine resultVal End Sub '-------------------------------------------------------------------------------------- ' ' propatetyをカンマ区切で出力する ' '-------------------------------------------------------------------------------------- Sub propatetyOutput(bookName,paraSheet) resultVal = "" resultVal = resultVal & bookName & "," resultVal = resultVal & paraSheet.Name & "," resultVal = resultVal & paraSheet.PageSetup.LeftHeader & "," resultVal = resultVal & paraSheet.PageSetup.CenterHeader & "," resultVal = resultVal & paraSheet.PageSetup.RightHeader & "," resultVal = resultVal & paraSheet.PageSetup.LeftFooter & "," resultVal = resultVal & paraSheet.PageSetup.CenterFooter & "," resultVal = resultVal & paraSheet.PageSetup.RightFooter & "," resultVal = resultVal & paraSheet.PageSetup.LeftMargin & "," resultVal = resultVal & paraSheet.PageSetup.RightMargin & "," resultVal = resultVal & paraSheet.PageSetup.TopMargin & "," resultVal = resultVal & paraSheet.PageSetup.BottomMargin & "," resultVal = resultVal & paraSheet.PageSetup.HeaderMargin & "," resultVal = resultVal & paraSheet.PageSetup.FooterMargin & "," resultVal = resultVal & paraSheet.PageSetup.PrintHeadings & "," resultVal = resultVal & paraSheet.PageSetup.PrintGridlines & "," resultVal = resultVal & paraSheet.PageSetup.PrintComments & "," resultVal = resultVal & paraSheet.PageSetup.CenterHorizontally & "," resultVal = resultVal & paraSheet.PageSetup.CenterVertically & "," resultVal = resultVal & paraSheet.PageSetup.Orientation & "," resultVal = resultVal & paraSheet.PageSetup.Draft & "," resultVal = resultVal & paraSheet.PageSetup.PaperSize & "," resultVal = resultVal & paraSheet.PageSetup.FirstPageNumber & "," resultVal = resultVal & paraSheet.PageSetup.Order & "," resultVal = resultVal & paraSheet.PageSetup.BlackAndWhite & "," resultVal = resultVal & paraSheet.PageSetup.Zoom & "," resultVal = resultVal & paraSheet.PageSetup.PrintErrors resultfile.WriteLine resultVal End Sub