Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


24420 / 76738 ←次へ | 前へ→

【57666】Re:BeforeCloseイベントについて
発言  ichinose  - 08/9/8(月) 8:48 -

引用なし
パスワード
   おはようございます。

>Private Sub Workbook_BeforeClose(Cancel As Boolean)
>  If Workbooks.Count > 1 Then
>   'ThisWorkbook.Close False  '<=●タイミングの関係でこれ不要みたい●
>   Exit Sub
>  End If
>  '念のため保存しておく(ここで上書きしたくない場合はSavedを使う)
>  '開くかどうかの分岐
>  ThisWorkbook.Save
>  If MsgBox("002を開きますか?", vbYesNo) = vbYes Then
   Workbooks.Open thisworkbook.path & "\002.xls"
>   ThisWorkbook.Close False
>  End If
>End Sub

私もいくつか考えてみたのですが、Excel2002 SP3では、うまくいきません。
上記のkobasanさんのコードも

コードを設定後、一度Excelを終了して後、
再度、Excelを起動し、問題の上記のコードを含んだ001.XLSを開いた後、
いきなり、Excel終了Xボタンをクリックすると、

>  If MsgBox("002を開きますか?", vbYesNo) = vbYes Then
   Workbooks.Open thisworkbook.path & "\002.xls"
上記のMsgboxで「はい」をクリックすると、
次行の

Workbooks.Open thisworkbook.path & "\002.xls"

ここで、
「実行時エラー'5'
 プロシジャー呼び出し、または引数が不正です」

というエラーが発生し、コードが止まります。
002.XLSは開かれいるので、

On Error Resume Next
Workbooks.Open thisworkbook.path & "\002.xls"

等と付加してもエラーは回避できません。
(VBEのオプションのエラートラップは 「エラー処理対象外のエラーで中断」を選択)
つまり、トラップを拾えない状況です。

しかし、このエラー発生後、一度、002.Xls,001.Xlsを閉じた後(Excelは終了しない)、再度001.XLSを開いて、同様の動作を行うと、001.XLSが閉じて、002.XLSが開く
という正しい処理がなされます。

いくつか修正も必要かと思いますが、001.XlsのThisworkbookに

Private Sub Workbook_BeforeClose(Cancel As Boolean)
  Dim bk As Object
  If MsgBox("002を開きますか?", vbYesNo) = vbYes Then
   
    On Error Resume Next
    With CreateObject("excel.application")
     .Visible = True
     .Workbooks.Open ThisWorkbook.Path & "\002.xls"
     End With
    Application.Quit
  End If
End Sub

などとして、別インスタンスのExcelに002.Xlsを開く方法ぐらいしか
正常に作動しません。


Excelの他のバージョンではいかがですか?
0 hits

【57629】BeforeCloseイベントについて いかぽっぽ 08/9/6(土) 0:08 質問
【57638】Re:BeforeCloseイベントについて りん 08/9/6(土) 12:42 発言
【57640】Re:BeforeCloseイベントについて こたつねこ 08/9/6(土) 13:12 発言
【57641】Re:BeforeCloseイベントについて りん 08/9/6(土) 13:59 発言
【57642】Re:BeforeCloseイベントについて こたつねこ 08/9/6(土) 14:54 発言
【57645】Re:BeforeCloseイベントについて kobasan 08/9/6(土) 19:29 発言
【57646】Re:BeforeCloseイベントについて りん 08/9/6(土) 19:52 発言
【57648】Re:BeforeCloseイベントについて こたつねこ 08/9/6(土) 19:56 発言
【57649】Re:BeforeCloseイベントについて りん 08/9/6(土) 20:14 発言
【57650】Re:BeforeCloseイベントについて kobasan 08/9/6(土) 22:50 発言
【57651】Re:BeforeCloseイベントについて kobasan 08/9/6(土) 23:56 発言
【57653】Re:BeforeCloseイベントについて kobasan 08/9/7(日) 9:59 発言
【57654】Re:BeforeCloseイベントについて kobasan 08/9/7(日) 12:43 回答
【57666】Re:BeforeCloseイベントについて ichinose 08/9/8(月) 8:48 発言
【57668】Re:訂正 ichinose 08/9/8(月) 10:38 発言
【57800】Re:訂正 kobasan 08/9/13(土) 16:46 発言
【57806】Re:訂正 りん 08/9/13(土) 18:16 発言

24420 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free