goo blog サービス終了のお知らせ 
音楽に関する話題、プログラムに関する話題、ジョギングに関する話題、後は日々気になったことを綴っていきます。
ザ☆ミュージシャンズ・プログラマー - Exploring Music & Programming -



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)







A
1みかん
2りんご
3なし
4もも
5バナナ

# アセンブルします
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ではこうしろという指針(?)みたいな例がありました。
まぁ、これでもいいかなと思いましたが、ここは意地でも簡単にやるぞという意気込みで発見した次第です。

今日の収穫は以外にも大きかったです。

では。




コメント ( 0 ) | Trackback ( )