質問編集履歴

3 環境情報を記載

nob777

nob777 score 109

2015/09/01 00:46  投稿

powershellでExcelワークシートの最終行を取得する方法
powershellでExcelワークシートの最終行を取得する方法を模索しています。
VBAでは下記のとおりにコードを書くことで、最終行を簡易にかつ、高速に取得することができました。
```VBA
Cells(Rows.Count, 1).End(xlUp).Row
```
そのため、powershellでもComObjectを使用し、下記のとおりにコードを書いて実行しました。
```powershell(ComObject使用)
$excel = New-Object -ComObject Excel.Application
$excel.Workbooks.Open("C:worksample.xls")
$excel.Cells($excel.Rows.Count, 1).End($excel.xlUp).Row
```
結果、下記のとおり、エラーとなってしまいます。
```エラーメッセージ内容
HRESULT からの例外:0x800A03EC
発生場所 C:workGetSendList.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  
 
以上、よろしくお願いいたします。
  • VBA

    2551 questions

    VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

  • Excel

    2107 questions

    Excelは、マイクロソフト社が開発しているデータ集計や分析を行う表計算ソフトの一つです。文書作成や表計算、資料作成などの多彩な機能を備えており、統合パッケージであるMicrosoft Officeに含まれています。

  • PowerShell

    523 questions

    Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

  • マクロ

    312 questions

    定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

2 コードの訂正

nob777

nob777 score 109

2015/09/01 00:30  投稿

powershellでExcelワークシートの最終行を取得する方法
powershellでExcelワークシートの最終行を取得する方法を模索しています。
VBAでは下記のとおりにコードを書くことで、最終行を簡易にかつ、高速に取得することができました。
```VBA
Cells(Rows.Count, 1).End(xlUp).Row
```
そのため、powershellでもComObjectを使用し、下記のとおりにコードを書いて実行しました。
```powershell(ComObject使用)
$excel = New-Object -ComObject Excel.Application
$excel.Workbooks.Open("C:worksample.xls")  
$excel.Cells($excel.Rows.Count, 1).End($excel.xlUp).Row
```
結果、下記のとおり、エラーとなってしまいます。
```エラーメッセージ内容
HRESULT からの例外:0x800A03EC
発生場所 C:workGetSendList.ps1:14 文字:1
+ $excel.Cells($excel.Rows.Count, 1).End($excel.xlUp).Row
   + CategoryInfo         : OperationStopped: (:) [], COMException
   + FullyQualifiedErrorId : System.Runtime.InteropServices.COMException
```
■質問事項
A.どのようにすればエラーを回避することが可能でしょうか?
B.(Aの回避策が無い場合)他の代替え方法で、
 最終行を極力簡易に、かつ、高速に取得する方法はないでしょうか?
以上、よろしくお願いいたします。
  • VBA

    2551 questions

    VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

  • Excel

    2107 questions

    Excelは、マイクロソフト社が開発しているデータ集計や分析を行う表計算ソフトの一つです。文書作成や表計算、資料作成などの多彩な機能を備えており、統合パッケージであるMicrosoft Officeに含まれています。

  • PowerShell

    523 questions

    Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

  • マクロ

    312 questions

    定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

1 エラー内容の訂正

nob777

nob777 score 109

2015/09/01 00:28  投稿

powershellでExcelワークシートの最終行を取得する方法
powershellでExcelワークシートの最終行を取得する方法を模索しています。
VBAでは下記のとおりにコードを書くことで、最終行を簡易にかつ、高速に取得することができました。
```VBA
Cells(Rows.Count, 1).End(xlUp).Row
```
そのため、powershellでもComObjectを使用し、下記のとおりにコードを書いて実行しました。
```powershell(ComObject使用)
$excel = New-Object -ComObject Excel.Application
$excel.Cells($excel.Rows.Count, 1).End($excel.xlUp).Row
```
結果、下記のとおり、エラーとなってしまいます。
```エラーメッセージ内容
HRESULT からの例外:0x800A03EC
発生場所 C:workGetSendList.ps1:14 文字:1
+ $MaxNo = $excel.Cells($excel.Rows.Count, 1).End($excel.xlUp).Row
+ $excel.Cells($excel.Rows.Count, 1).End($excel.xlUp).Row
   + CategoryInfo         : OperationStopped: (:) [], COMException
   + FullyQualifiedErrorId : System.Runtime.InteropServices.COMException
```
■質問事項
A.どのようにすればエラーを回避することが可能でしょうか?
B.(Aの回避策が無い場合)他の代替え方法で、
 最終行を極力簡易に、かつ、高速に取得する方法はないでしょうか?
 最終行を極力簡易に、かつ、高速に取得する方法はないでしょうか?
以上、よろしくお願いいたします。
  • VBA

    2551 questions

    VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

  • Excel

    2107 questions

    Excelは、マイクロソフト社が開発しているデータ集計や分析を行う表計算ソフトの一つです。文書作成や表計算、資料作成などの多彩な機能を備えており、統合パッケージであるMicrosoft Officeに含まれています。

  • PowerShell

    523 questions

    Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

  • マクロ

    312 questions

    定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る