• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAを使用して、ブックからブックを開く)

VBAを使用してExcel2000の複数のブックを開く方法

このQ&Aのポイント
  • VBAを使用してExcel2000で複数のブックを開く方法を知りたいです。
  • INDEX用のブックを作成して、A、B、Cのファイル名を指定して開けるようにしたいですが、うまくいきません。
  • INDEX用のブックを自動で閉じたいのですが、OpenEventのマクロが進みません。どうすればいいですか?

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

  • ベストアンサー
  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.2

Shellで起動すれば新たなインスタンスでExcelファイルが立ち上がるので お互いに『我、関せず』状態になりますのでよろしいかと。 A.B.Cxlsは自分自身のことだけを考えれば良い。 Shell("excel.exe c:\A.xls") Application.quit

B_BOSS
質問者

お礼

御回答、ありがとうございました。 SHELLと言う関数を初めてしりました。  VBAも希望の動きをしてくれました。 ありがとうございました。

その他の回答 (1)

  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

>A、B、CにOpenEventを設定し デッドロックだと思います。 INDEX側はA、B、Cを開くまで「実行中」です。 「開くまで」とはOpenイベントが終了するまでです。 A、B、CのOpenイベントでINDEXを閉じようと すると、INDEXの実行中の処理が終了するまで 待ち合わせます。つまり、Openイベントが終わりません。 INDEX側もA、B、CのOpenメソッドが完了する まで待ち合わせます。お互いに相手の処理終了を待ち 合ってしまいます。 >逆にINDEX用のBOOKにCloseを 考えられるのは次の事象です。 (1)ターゲットを指定していない。 Workbooks(1).Closeなどではありませんか? ThisWorkbook.Close としていますか? (2)変更後に保存していないのでダイアログが出ている。 A、B、Cを別プロセスで開くと画面が上に来るので、 「保存しますか?」のダイアログが見えないことが あります。 (3)A、B、Cに「INDEXを閉じる」がある。 最初と同じでデッドロックしています。 (4)Closeを通っていない。 何らかの理由でCloseメソッドを実行していないかも 知れません。トレースしてみてください。

関連するQ&A

専門家に質問してみよう