• ベストアンサー

他のExcelアプリケーション上のbookにアクセス

今、VBAのプログラミングをしています。 そこで、マクロの含まれているExcelアプリケーション上から、別のExcelアプリケーション上のbook(マクロなし)に対して、何らかのアクセス(指定したbookをCloseさせるなど)を行いたいと思っているのですが、可能なのでしょうか。 もし、可能であればその方法を教えていただけると助かります。 宜しくお願い致します。 例.ExlApplication1      →    ExlApplication2 book1(マクロ含む) →    book2(マクロなし)   この状況において、book1のマクロによってbook2を閉じる処理を行  いたい。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

GetObject("Book2").Close Book2が既に保存されているなら、 GetObject(~フルパス~).Close だと思います。

maTTun1219
質問者

補足

ご回答ありがとうございます。 GetObject()を利用して他ExlApplicationのbookを閉じることに成功しました。ただ、bookを閉じるついでにそのExlApplicationを閉じることができません。QuitメソッドでExlApplicationを閉じようにもエラー(そのメソッドは扱っていない!?みたいな感じの)が出てしまいます。これは解決できるでしょうか?もし、お分かりでしたら教えていただきたいです。宜しくお願い致します。

その他の回答 (2)

回答No.3

こんにちは。 >ExlApplicationを閉じることができません。Quitメソッドで>ExlApplicationを閉じようにもエラーが出てしまいます。これは解決できるでしょうか? GetObject("book2") で捕まえたオブジェクトはブックオブジェクトなので、 その親オブジェクトに対してQuitしてやればいいのでは? GetObject("book2").Parent.Quit 多分、これでいけると思います。

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

ブックのマクロの有無は関係ありません。 VBAから単純に Workbooks("Book2.xls").Close では駄目なのですか?

maTTun1219
質問者

補足

ありがとうございます。 その方法は実際試してみたのですが、自ExlApplication上の別bookに対しては有効なのですが、他のExcelApplication上にあるbookに対しては無効のようです。 そもそもWorkbooksというもの自体が、自ExcelApplication上のbook全てを指してるにすぎないので、他のExcelApplication上のbookは(自ExcelApplication上の)Workbooksには含まれない感じです。

関連するQ&A