既に開いてある Excel からデータを取得する方法は?

Excel操作を行う場合、[Excel application scope] の中に[Read cell] や[Write cell]を
用いて制御しますが、既に開いてあるExcelファイルを制御する場合、
どんなアクティビティを使えば良いのでしょうか?

<具体的な状況>
PDFをExcelに変換(ここでExcelファイルが開く)し、そのファイルからデータを読み込み、
別のExcelファイルへコピーしたい。

よろしくお願いします。

Excel Application Scopeで既に開いているExcelファイルを指定すれば、そのまま読み取り・操作できます。

但し、その場合、Excel Application Scopeを出てもExcelは終了しないので、

  • Excel Application Scopeの最後でClose Workbookする
    (この場合、Excel Application ScopeのOutputで明示的にWorkbookApplication型の変数を割り当てて、Close Workbookの引数にセットする必要があります)
  • Excel Application Scopeの最後でSave Workbookした上で、Excel Application Scopeを抜けてからClose Windowする

といった対応が必要になります。
他のExcelファイルも(コピーするために)使用しているのであれば、セレクタの誤爆で関係ないExcelを閉じてしまうのを防ぐため、前者のほうが良いかと思います。

5 Likes

Honoka さん

返信ありがとうございます。

Excel Application Scope が使えるのですね。すみません。
実装したらエラーになったので、Open状態のExcelには使えないと思い込んでいました。

※発生しているエラーを良く見たら、全く同じファイル名のExcelを開こうとして
※エラーが発生していました。

Excelを閉じる際の注意点、ご教授ありがとうございます。
参考にさせて頂きます。