- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAを使用して、ブックからブックを開く)
VBAを使用してExcel2000の複数のブックを開く方法
このQ&Aのポイント
- VBAを使用してExcel2000で複数のブックを開く方法を知りたいです。
- INDEX用のブックを作成して、A、B、Cのファイル名を指定して開けるようにしたいですが、うまくいきません。
- INDEX用のブックを自動で閉じたいのですが、OpenEventのマクロが進みません。どうすればいいですか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Shellで起動すれば新たなインスタンスでExcelファイルが立ち上がるので お互いに『我、関せず』状態になりますのでよろしいかと。 A.B.Cxlsは自分自身のことだけを考えれば良い。 Shell("excel.exe c:\A.xls") Application.quit
その他の回答 (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メソッドを実行していないかも 知れません。トレースしてみてください。
お礼
御回答、ありがとうございました。 SHELLと言う関数を初めてしりました。 VBAも希望の動きをしてくれました。 ありがとうございました。