事前に Set-ExecutionPolicy RemoteSigned して PowerShellスクリプトの実行セキュリティ・ポリシーを変更しておく必要はある。
$path = "Xlsを探すパス(サブフォルダも再帰して探します)"
Add-Type -AssemblyName Microsoft.Office.Interop.Excel
$xlRemoveDocType = "Microsoft.Office.Interop.Excel.XlRemoveDocInfoType" -as [type]
$excelFiles = Get-ChildItem -Path $path -include *.xls, *.xlsx ,*.xlsm -recurse
$objExcel = New-Object -ComObject excel.application
$objExcel.visible = $false
foreach($wb in $excelFiles)
{
$workbook = $objExcel.workbooks.open($wb.fullname)
"Removing document information from $wb"
$workbook.RemoveDocumentInformation($xlRemoveDocType::xlRDIAll)
$workbook.Save()
$objExcel.Workbooks.close()
}
$objExcel.Quit()
| 名前 | 値 | 説明 |
| xlRDIAll | 99 | 文書情報をすべて削除します。 |
| xlRDIComments | 1 | 文書情報からコメントを削除します。 |
| xlRDIContentType | 16 | 文書情報からコンテンツ タイプのデータを削除します。 |
| xlRDIDefinedNameComments | 18 | 文書情報から定義済みの名前のコメントを削除します。 |
| xlRDIDocumentManagementPolicy | 15 | 文書情報から文書管理ポリシー データを削除します。 |
| xlRDIDocumentProperties | 8 | 文書情報から文書プロパティを削除します。 |
| xlRDIDocumentServerProperties | 14 | 文書情報からサーバー プロパティを削除します。 |
| xlRDIDocumentWorkspace | 10 | 文書情報からワークスペース データを削除します。 |
| xlRDIEmailHeader | 5 | 文書情報からメール ヘッダーを削除します。 |
| xlRDIExcelDataModel | 23 | 文書情報からデータ モデル データを削除します。 |
| xlRDIInactiveDataConnections | 19 | 文書情報から無効なデータ接続を削除します。 |
| xlRDIInkAnnotations | 11 | 文書情報からインク注釈を削除します。 |
| xlRDIInlineWebExtensions | 21 | 文書情報からインライン Web 拡張機能を削除します。 |
| xlRDIPrinterPath | 20 | 文書情報からプリンターのパスを削除します。 |
| xlRDIPublishInfo | 13 | 文書情報から発行情報データを削除します。 |
| xlRDIRemovePersonalInformation | 4 | 文書情報から個人情報を削除します。 |
| xlRDIRoutingSlip | 6 | 文書情報から回覧先を削除します。 |
| xlRDIScenarioComments | 12 | 文書情報からシナリオのコメントを削除します。 |
| xlRDISendForReview | 7 | 文書情報から [校閲者へ送信] 情報を削除します。 |
| xlRDITaskpaneWebExtensions | 22 | 文書情報から作業ウィンドウの Web 拡張機能を削除します。 |
ネタ元