※この記事は「2023年7月24日」に更新しました。
PowerShell(パワーシェル)講座です。
ただし、前回も話した通り、私は、Excel を現在持っていないので、WPS Office の SpreadSheet(表計算ソフト)を検証に使っていきます。
Excel を持っているという方は、そちらを使ってください。
環境は、Windows 10(64bit)、PowerShell 6.1.2、WPS Office 2016 です。
PowerShell から Excel を操作する
PowerShell から Excel を操作する方法を解説します。
Excel を起動させる
Excel を起動させる方法です。
$E = New-Object -ComObject Excel.Application
$E という変数にインスタンス化されたオブジェクトが格納されていると思ってもらうと良いです(New-Object のところ)。
あとはメソッドやプロパティにアクセスできるようになるので操作していきます。
$E.Visible = $true
ちなみに、以下のようにすると画面上に表示させないようにできます。
$E.Visible = $false
ワークブックを作成する
ワークブックを作成する方法です。
$WB = $E.Workbooks.Add()
$WB は、変数です。
次に、操作するためにシートを取得します。
$WS = $WB.Worksheets.item(1)
$WS は、変数です。
試しにシートの名前を変更してみます。
$WS.Name = "test"
シートの名前が test に更新されたかと思います。
セルを操作する
セルを操作する方法です。
$CELLS = $WS.Cells
$CELLS は、変数です。
$CELLS.Item(1,1) = "10" $CELLS.Item(2,1) = "50"
値が更新されたかと思います。
ちなみに数式を入れることもできます。
$CELLS.Item(3,1) = "=A1+A2"
関数も使えました。
$CELLS.Item(4,1) = "=SUM(A1:A3)"
今までの実行結果は、以下の通りです。
ファイルを保存する
ファイルを保存する方法です。
$WB.SaveAs("C:\powershell\excel\wps-spreadsheet-test1.xls")
ちなみに上書き保存の場合は以下の通りです。
$WB.Save()
Excel を閉じる
Excel を閉じる方法です。
$E.quit()
しかし、タスクマネージャーを見てみると、バックグラウンドプロセスにまだ残っています。
$CELLS = $null $WS = $null $WB = $null $E = $null [GC]::Collect()
最後に
前回は、WPS Office を操作する方法を簡単に紹介しました。
今回は、PowerShell(パワーシェル)で Excel を操作する方法について、解説しました。
Excel を階層構造で見ていき、それら一つ一つを操作するといった感じです。
PowerShell は .NET Framework も使えます。
コツコツやっていきます。