Excelを読み込んで操作する処理のひな形
ExcelをCommを使って呼び出す際のひな形。
Excelオブジェクトが無い場合の処理等の例外処理が甘いので、今後追加を行う。
#ファイルオープンダイアログを動かすための準備処理 [void][System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") #ファイルオープンダイアログの設定値 $fd = New-Object System.Windows.Forms.OpenFileDialog $fd.DefaultExt = ".xlsx" $fd.Filter = "Excel File(*.xlsx)|*.xlsx" $fd.Title = "仕様書を起こすためのExcelファイルを選択してください" $dig_result = $fd.ShowDialog() #ダイアログの結果がOK以外なら処理を終了する if($dig_result -ne [System.Windows.Forms.DialogResult]::OK){ Write-Host "処理を終了" Exit 1 } #Excelファイルの読み込み try{ $excel = New-Object -ComObject Excel.Application $excel.Visible = $false #既存Excelの読み込み $book = $excel.Workbooks.Open($fd.FileName) #シートの読み込み $sheet = $excel.Workbooks.Item(1) }catch [Exeption] { #処理中にエラーが発生した場合の処理 Write-Host "エラー発生" Exit 2 }finally{ #Commオブジェクトにnullを入れて破棄する $sheet,$book, $excel | ForEach-Object{ [System.Runtime.InteropServices.Marshal]::ReleaseComObject($_) $_ = $null } Write-Host "終了" }