Windows Power Shellの覚書です。
★Excelの列挙型を確認する
1. Office プライマリ相互運用機能アセンブリをロードします。
こんな感じ
PS C:\>[Reflection.Assembly]::LoadWithPartialName("Microsoft.Office.Interop.Excel")
GAC Version Location
--- ------- --------
True v2.0.50727 C:\WINDOWS\assembly\GAC_MSIL\Microsoft.Office.Interop.Excel\14.0.0.0__71e9bce111e9429c\Microsoft.Office.Interop.Excel.dll
2. 列挙型(例えばXlLineStyle)を一覧する
PS C:\>$xlLineStyle = [Microsoft.Office.Interop.Excel.XlLineStyle]
PS C:\>[enum]::GetValues($xlLineStyle) | %{ "{0,-20}: {1}" -f $_, [int]$_ }
xlContinuous | : 1 |
xlDashDot | : 4 |
xlDashDotDot | : 5 |
xlSlantDashDot | : 13 |
xlLineStyleNone | : -4142 |
xlDouble | : -4119 |
xlDot | : -4118 |
xlDash | : -4115 |
3. 列挙型を使ってみる
サンプル表(ファイル名:sample.xls、シート名:Sheet1)
# アセンブルします
PS C:\>[Reflection.Assembly]::LoadWithPartialName("Microsoft.Office.Interop.Excel")
# Excel.Applicationを生成します
PS C:\>$xls = New-Object -ComObject Excel.Application -property @{DisplayAlerts=$false}
# ワークブックを開きます
PS C:\>$wb = $xls.Workbooks.Open((Dir .\sample.xls).Fullname)
# ワークシートを取得します
PS C:\>$ws = $wb.Worksheets.Item("Sheet1")
# 列挙型XlDirectionを取得します
PS C:\>$xlDirection = [Microsoft.Office.Interop.Excel.XlDirection]
# A2の参照を取得して、値の入っている最下段のセルへ移動します
PS C:\>$range = $ws.Range("A2").End($xlDirection::XlDown)
# 移動先のアドレスと値を参照して、「バナナ」の行が参照できていればOK!!
PS C:\>"場所:{0}、値:{1}" -f $range.Address(), $range.Text
場所:$A$5、値:バナナ
MSDNのサイトMSDNのサイトでは、PowerShellではこうしろという指針(?)みたいな例がありました。
まぁ、これでもいいかなと思いましたが、ここは意地でも簡単にやるぞという意気込みで発見した次第です。
今日の収穫は以外にも大きかったです。
では。