非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

PowerShellでExcelファイルを操作する方法

   

PowerShellでExcelを処理できます。今回は基本形ということで既存のExcelファイルの指定セルに文字を入れる方法を紹介します。Book1.xlsxというファイルのSheet1のA1セルに「Test」という文字列を入れるプログラムです。

# Excelオブジェクト作成
$excel = New-Object -ComObject Excel.Application
$excel.Visible = $false
# 既存のExcelファイル(Book1.xlsx)を開く
$book = $excel.Workbooks.Open("C:\...\Book1.xlsx")
# シート(Sheet1)を指定
$sheet = $excel.Worksheets.Item("Sheet1")
# A1セルにテキストを入力
$sheet.Cells.Item(1,1) = "Test"
# 保存
$book.Save()
# ブックを閉じる
$book.Close()
$excel.Quit()
#↓これめっちゃ大事。$excel.Quit()だけではプロセスは落ちない。タスクマネージャーに残さないために。
[void][System.Runtime.InteropServices.Marshal]::FinalReleaseComObject($sheet)
[void][System.Runtime.InteropServices.Marshal]::FinalReleaseComObject($book)
[void][System.Runtime.InteropServices.Marshal]::FinalReleaseComObject($excel)
 

 

指定の場所にあらかじめBook1.xlsxを用意しておいて以下のようにPowershellで実行するとExcelファイルが開くことなく静かに実行し終了します。見た目は何も起きていない風です。

Book1.xlsxを開くと、ご覧の通りA1セルに「Test」という文字が入りました。

スポンサーリンク

 - Excel, PowerShell