Excelブックを操作する

ご無沙汰しております。
2010/7/7でPowerShell from Japan!! は2周年を迎えることができました。
最近エントリーが少なく、楽しみにされている方には本当に申し訳ありません。
今後ともご愛顧のほどよろしくお願いいたします。

さて、今回はPowerShellでExcelを操作する方法です。
まだ取り上げたことがなかったので記しておきます。

まずはExcelブックを作成する方法ですが、これにはNew-Objectコマンドレットを使用します。
また、作成したExcelを画面上に表示させる(起動する)には、作成したオブジェクトのVisibleプロパティをTrueにします。

下記がそのコード例です。

#Excelオブジェクトの作成
$xls = New-Object -ComObject Excel.Application
#Excelを画面に表示する
$xls.Visible = $True

次に既存のExcelファイルを開く方法です。
作成したExcelオブジェクトのWorkBooks.Open(ファイル名) を使用します。
また、1つ目のスプレッドシートに接続するにはWorksheets.Item(シート番号)を使用します。

下記がそのコード例です。

#既存のExcelファイルを開く
$books = $xls.Workbooks.Open("C:\Work\Test.xls")
#シートへ接続
$sheet = $book.Worksheets.Item(1)

今度はセル操作です。
先ほど接続したシートのオブジェクト($sheet)を使用して Cells.Item(行,列) プロパティに対して値をセットします。

下記がそのコード例です。

#セル(1,2)への書き込み
$sheet.Cells.Item(1,2) = "TEST"

最後に作成したExcelを保存して終了します。
上書き保存はExcelオブジェクトのSaveメソッドを使用します。新規保存はSaveAs(ファイル名)メソッドを使用します。
あとは、ブックのクローズ、Excelのクローズをし、最後にガベージコレクタを動作させます。

下記がそのコード例です。

#上書き保存する
$xls.ActiveWorkbook.Save()
#ブックのクローズ
$books.Close()
#Excelのクローズ
$xls.Quit()
#ガベージコレクタを動作させる
[GC]::Collect()

コメント

  1. […] るのはマジ http://blog.powershell-from.jp/?p=814 […]

タイトルとURLをコピーしました