【PowerShell講座】Excelを操作する

Excelを操作する

PowerShell講座です。

前回は、WPS Office を操作する方法を簡単に紹介しました。

【PowerShell講座】WPS Office を操作する

2020.01.13

今回も続きで、PowerShell で Excel を操作する方法について、もう少し詳しく解説していきます。

ただし、前回も話した通り、私は、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 は、変数です。

試しに A1 と A2 に値を入力してみます。

$CELLS.Item(1,1) = "10"
$CELLS.Item(2,1) = "50"

値が更新されたかと思います。

ちなみに数式を入れることもできます。

$CELLS.Item(3,1) = "=A1+A2"

関数も使えました。

$CELLS.Item(4,1) = "=SUM(A1:A3)"

今までの実行結果は以下の通りです。

Excel操作

ファイルを保存する

ファイルを保存する方法です。

名前を付けて保存します。

$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()

これでプロセスを解放できました。

最後に

いかがでしょうか。

Excel を階層構造で見ていき、それら一つ一つを操作するといった感じですね。

PowerShell は .NET Framework も使えます。

コツコツやっていきます。