[FAQ CENTER トップ]
[Powershell FAQ トップへ]



【Powershell】Excelで $book.SaveAsで確認なしに上書きする方法



更新日:2022/03/13


現象



$book.SaveAsで新規に作成したファイルに対して"ファイル名を使用して上書き"により上書きする場合、警告を非表示にする方法を紹介します。

以下の場合、c:\temp\test.xlsxでsave使用とすると Excel画面で上書きの確認がされてしまいます。


#Excel を起動
$excel = New-Object -ComObject Excel.Application
$excel.Visible = $true
$excel.DisplayAlerts = $true

#Workbookを追加
$book = $excel.Workbooks.Add()

#追加されたsheetを取得
$sheet = $book.Sheets("Sheet1")

#値を設定
$sheet.Cells.Item(1, 1) = 1

#ファイルを保存
$book.SaveAs("c:\temp\test.xlsx")

#Excelを終了
$excel.Quit()

#プロセスを終了。これを実行しないと Excel.exe が残存してしまう。
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel)
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($sheet)




対処



以下の行をSaveAsの前に追記します。これで上書き確認はされません。


$excel.DisplayAlerts = $FALSE








[Powershell FAQ トップへ]
[FAQ CENTER トップ]


本サイト内掲載されている情報は、著作権法により保護されています。いかなる場合でも権利者の許可なくコピー、配布することはできません。 このページはリンクフリーです。(このページへの直接リンクも可能です。) Copyright(c) tooljp.com 2007-2018