PowerShellにてExcel操作後、csv保存メッセージの無視

実現したいこと

PowerShellでcsvファイルのデータを加工後、Excelファイルへ転記
その後、加工したcsvファイルは保存せずに確認メッセージを表示させずに閉じる。

発生している問題・分からないこと

データ加工後のコピーなど大筋のやりたい事は実現出来ているのですが
編集したcsvファイルを閉じる挙動に苦戦しています。

該当のソースコード

powershell

1# WeekyReport2 3$excel = New-Object -ComObject Excel.Application 4$excel.Visible = $false5 6 $BO_DATA = Get-ChildItem path 7 $TR_DATA = Get-ChildItem path 8 $Rec_DATA = Get-ChildItem path 9 10 $SourceBook1 = $excel.Workbooks.open("$BO_DATA")11 $SourceBook2 = $excel.Workbooks.open("$TR_DATA")12 $TargetBook = $excel.Workbooks.open("$Rec_DATA")13 14# ------- 編集1 ------- 15 16 $sheet_S1 = $SourceBook1.Worksheets(1)17 $SourceRange = $sheet_S1.Range($sheet_S1.Cells(3, 4), $sheet_S1.Cells(53, 4))18 $SourceRange.Formula = "=(B3+C3)/1024/1024/1024"19 20 $sheet_S1.Cells.NumberFormatLocal = "0_);[赤](0)"  21 22 $SourceRange = $sheet_S1.Range($sheet_S1.Cells(3, 1), $sheet_S1.Cells(53, 4))23 $SourceRange.Sort($SourceRange.Cells(3, 4), 2)24 25# ------- B to T -------26 27 $CopyRange1 = $SourceBook1.WorkSheets.item(1).range("A4:C23")28 $CopyRange1.copy()29 $PasteSheet = $TargetBook.worksheets.item(2)30 $PasteRange = $PasteSheet.Range("B2")31 $PasteSheet.Cells.Item(2, 2).PasteSpecial(-4163)32 33# ------- TR to T -------34 35 $CopyRange2 = $SourceBook2.WorkSheets.item(1).range("A3:C5")36 $CopyRange2.copy()37 $PasteSheet = $TargetBook.worksheets.item(2)38 $PasteRange = $PasteSheet.Range("B25")39 $PasteSheet.Cells.Item(25, 2).PasteSpecial(-4163)40 41# 保存/閉じる/プロセス解放42 $TargetBook.Save()43 $SourceBook1.Close()44 $SourceBook2.Close()45 $excel.Quit() 46 $excel = $null 47 [GC]::Collect()

試したこと・調べたこと

上記の詳細・結果

ヒントの一つとしてレジストリ操作によって解決出来るかと思ったのですが
仕事用PCの為、可能であればレジストリ操作でなくスクリプト内で解決させたいという思いがあり
参考URLの操作は未実行の状態です。

https://pcclick.seesaa.net/article/490681728.html

補足

PSVersion 5.1.19041.4412
Excel2016

コメントを投稿

0 コメント