複数のEXCELファイルを制御したい

ひとつのスクリプトで複数のExcelファイルからデータを取得したいのですが、
うまくいきません。 スクリプトは下記の通りです。
// A1には『りんご』 A2 には『ごりら』

PT1 = "C:\Users\UWSC\Desktop\TEST1.xls"
PT2 = "C:\Users\UWSC\Desktop\TEST2.xls"

Excel = XLOPEN(PT1)
PRINT XLGETDATA( Excel,"A1") //結果:りんご

Excel = XLOPEN(PT2)
PRINT XLGETDATA( Excel,"A2") //結果:ごりら
PRINT XLGETDATA( Excel,"A1") //結果は空になる

対策を教えて下さい。

COMオブジェクトの認識の問題ですね。

エクセルの操作はExcel = XLOPEN(ファイル名)と考えがちですが、
実際は戻値 = XLOPEN(ファイル名)です。
なので、戻値のCOMオブジェクトを適切に設定すれば、解決します。

修正コード

PT1 = "C:\Users\UWSC\Desktop\TEST1.xls"
PT2 = "C:\Users\UWSC\Desktop\TEST2.xls"

Excel = XLOPEN(PT1)
PRINT XLGETDATA( Excel,"A1") //結果:りんご

Excel2 = XLOPEN(PT2)
PRINT XLGETDATA( Excel2,"A2") //結果:ごりら
PRINT XLGETDATA( Excel,"A1")  //結果はりんご

ちなみに、COMオブジェクトをクリアーしないで、質問のコードを連続して走らせると、
『空』→『ごりら』→『空』になります。

関連情報:

  1. 既存Excelファイルのオープン(workbooks.open)
  2. XLCLOSE
  3. ブックを保存し閉じる
  4. XLOPEN
  5. XLACTIVATE


続きは、ログインもしくは、登録してください



このページの先頭へ