powershellでExcelワークシートの最終行を取得する方法を模索しています。
VBAでは下記のとおりにコードを書くことで、最終行を簡易にかつ、高速に取得することができました。
VBA
1Cells(Rows.Count, 1).End(xlUp).Row
そのため、powershellでもComObjectを使用し、下記のとおりにコードを書いて実行しました。
powershell(ComObject使用)
1$excel = New-Object -ComObject Excel.Application 2$excel.Workbooks.Open("C:\work\sample.xls") 3$excel.Cells($excel.Rows.Count, 1).End($excel.xlUp).Row
結果、下記のとおり、エラーとなってしまいます。
HRESULT からの例外:0x800A03EC 発生場所 C:\work\GetSendList.ps1:14 文字:1 + $excel.Cells($excel.Rows.Count, 1).End($excel.xlUp).Row + CategoryInfo : OperationStopped: (:) [], COMException + FullyQualifiedErrorId : System.Runtime.InteropServices.COMException
■質問事項
A.どのようにすればエラーを回避することが可能でしょうか?
B.(Aの回避策が無い場合)他の代替え方法で、
最終行を極力簡易に、かつ、高速に取得する方法はないでしょうか?
■環境
powershell:5.0.10240.16384
OS:Windows 10 Home
以上、よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/09/02 10:47