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

WPS Office を操作する

PowerShell講座です。

前回は、複数フォルダを高速で作成する方法を紹介しました。

【PowerShell講座】複数フォルダを高速で作成する

2020.01.12

今回は、WPS Office を PowerShell で操作する方法について紹介します。

環境は、Windows 10(64bit)、PowerShell 6.1.2、WPS Office 2016 です。

それでは見ていきましょう。



WPS Office を操作する

WPS Office を操作する方法を紹介します。

PowerShell を使えば、Excel を操作できるのですが、WPS Office(互換 Office)はどうなのか。

問題ありません。

PowerShell から Excel を操作するには、COM(Component Object Model)という技術が使われています。

Windows でプログラム間の連携に使われ、COM対応プログラムであれば、PowerShell を使って操作できるというわけです。

SpreadSheet を操作する

試しに Spreadsheet(表計算ソフト)を操作してみます。

$E = New-Object -ComObject Excel.Application
$E.Visible = $true
$WB = $E.Workbooks.Add()
$WS = $WB.Worksheets.item(1)
$WS.Name = "test"
$CELLS = $WS.Cells
$CELLS.Item(1,1) = "テスト"
$WB.SaveAs("C:\powershell\excel\wps-spreadsheet-test1.xls")
$WB.close()
$E.quit()
$CELLS = $null
$WS = $null
$WB = $null
$E = $null
[GC]::Collect()

下のスクリーンショットのように PowerShell で順番に実行していき、動きを確認していきましょう(変数を空にする順番が逆になってますが、テキストの方を参考にしてください)。

WPS Office を操作する

オブジェクト指向のプログラミング言語を学習したことがある方ならなんとなく理解できるかと思います。

WPS Office を操作する

$E、$WB、$WS、$CELLS は、変数です。

変数に関して詳しく知りたい方は以下の記事をご参照下さい。

【PowerShell講座】変数について

2019.02.04

【補足事項】プロセスの解放について

Spreadsheet(表計算ソフト)を PowerShell から操作していて、アプリを閉じるとき、以下を実行します。

$E.quit()

しかし、タスクマネージャーで見てみると、プロセスが残っていることが確認できます。

そこで、変数を空にして、以下の処理を行うわけです。

$CELLS = $null
$WS = $null
$WB = $null
$E = $null
[GC]::Collect()

Writer を操作する

ついでに Writer(文書作成ソフト)も操作してみます。

$W = New-Object -ComObject Word.Application
$W.Visible = $true
$DOC = $W.Documents.Add()
$DOC.Content.Text = "テスト"
$DOC.SaveAs("C:\powershell\word\wps-writer-test1.doc")
$W.quit()
$DOC = $null
$W = $null
[GC]::Collect()

Spreadsheet のときと同じように、PowerShell で順番に実行していき、動きを確認していきましょう(スクリーンショットは省いています)。

最後に

いかがでしょうか。

COM というインターフェースのおかげで PowerShell から簡単に WPS Office を操作することができました。

もちろん、スクリプトとしてファイルに保存して実行すれば、まとめて操作してくれます。

1行1行コマンドラインから入力して、Excel や Word を操作できるのは結構楽しいものです。