## 利用例
## .\integrateExclel.ps1 c:\excels c:\result.xls
## コマンドラインからの呼び出し時の引数
param(
[String]$srcDirStr, # 入力ディレクトリ
[String]$dstFileStr # 出力先ファイル
)
## Excelオブジェクトを作成
$xl = new-object -c excel.application
$xl.displayAlerts = $false
## 出力先オブジェクトを作成
$wbDst = $xl.workbooks.add()
## 入力ディレクトリから.xlsファイルを抽出
$srcFileList = dir $srcDirStr -recurse -include *.xls `
| where {!$_.PSIsContainer}
## 各.xlsファイルから、出力先オブジェクトにシートをコピー
foreach($srcFile in $srcFileList){
$srcFilePath = $srcFile.fullname
$wbSrc = $xl.workbooks.open($srcFilePath)
$sheetCount = $wbSrc.sheets.count
for ($i = 1
## 空でないシートのみをコピー
if($wbSrc.sheets.item($i).usedrange.count -gt 1){
$wbSrc.sheets.item($i).copy($wbDst.sheets.item(1))
}
}
$wbSrc.close($false) # 入力ファイルをクローズ
}
## 自動生成された3シート(Sheet1,..,Sheet3)を削除
for ($i = 1
$wbDst.sheets.item($wbDst.sheets.count).delete()
}
## 出力先オブジェクトをファイルとして保存
$wbDst.SaveAs($dstFileStr)
$wbDst.close($true)
$xl.quit()