ExcelのPageSetupをテキストに出力


指定したフォルダにある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