- ベストアンサー
他のExcelアプリケーション上のbookにアクセス
今、VBAのプログラミングをしています。 そこで、マクロの含まれているExcelアプリケーション上から、別のExcelアプリケーション上のbook(マクロなし)に対して、何らかのアクセス(指定したbookをCloseさせるなど)を行いたいと思っているのですが、可能なのでしょうか。 もし、可能であればその方法を教えていただけると助かります。 宜しくお願い致します。 例.ExlApplication1 → ExlApplication2 book1(マクロ含む) → book2(マクロなし) この状況において、book1のマクロによってbook2を閉じる処理を行 いたい。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
GetObject("Book2").Close Book2が既に保存されているなら、 GetObject(~フルパス~).Close だと思います。
その他の回答 (2)
- ForestRain
- ベストアンサー率63% (14/22)
こんにちは。 >ExlApplicationを閉じることができません。Quitメソッドで>ExlApplicationを閉じようにもエラーが出てしまいます。これは解決できるでしょうか? GetObject("book2") で捕まえたオブジェクトはブックオブジェクトなので、 その親オブジェクトに対してQuitしてやればいいのでは? GetObject("book2").Parent.Quit 多分、これでいけると思います。
- hana-hana3
- ベストアンサー率31% (4940/15541)
ブックのマクロの有無は関係ありません。 VBAから単純に Workbooks("Book2.xls").Close では駄目なのですか?
補足
ありがとうございます。 その方法は実際試してみたのですが、自ExlApplication上の別bookに対しては有効なのですが、他のExcelApplication上にあるbookに対しては無効のようです。 そもそもWorkbooksというもの自体が、自ExcelApplication上のbook全てを指してるにすぎないので、他のExcelApplication上のbookは(自ExcelApplication上の)Workbooksには含まれない感じです。
補足
ご回答ありがとうございます。 GetObject()を利用して他ExlApplicationのbookを閉じることに成功しました。ただ、bookを閉じるついでにそのExlApplicationを閉じることができません。QuitメソッドでExlApplicationを閉じようにもエラー(そのメソッドは扱っていない!?みたいな感じの)が出てしまいます。これは解決できるでしょうか?もし、お分かりでしたら教えていただきたいです。宜しくお願い致します。