事前に 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 拡張機能を削除します。 |
ネタ元