teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

情報の追記、修正

2016/05/24 06:03

投稿

KEN_aivan
KEN_aivan

スコア14

title CHANGED
File without changes
body CHANGED
@@ -4,6 +4,9 @@
4
4
 
5
5
  片方のファイル(A)は不明なエラーのためにどんなタイミングでもApplication.Quitでエクセルごと終了。
6
6
  もう片方のファイル(B)は単独時と複数展開時で処理内容を変更しています。
7
+ 下記のコードは、最初のにAとBの両方にそれぞれ記載されているコード。
8
+ 次にAのみ記載されているコード、共通コードのCanClose = True以降、System_CloseのEnd Subまで。
9
+ 最後にBにのみ記載されているコード、共通コードのCanClose = True以降、System_CloseのEnd Subまでとなっています。
7
10
 
8
11
  Excel2003 SP3
9
12
  ```
@@ -80,12 +83,19 @@
80
83
 
81
84
 
82
85
  1. AとBのブックを同時に起動させ、Bのブックをアクティブにして右上の閉じるボタンから終了すると、AのBeforeCloseに流れて一連の処理を行った後、BのBeforeCloseに流れてBが閉じる。これの処理をAに流れないようにしたい。
86
+ (追記)
87
+ Aと空白のブック(Excelの新規ブック作成機能で作成したブックに、
88
+ Private Sub Workbook_BeforeClose(Cancel As Boolean)
89
+ End Sub
90
+ のみ記述したもの)で検証(空白のブックをアクティブにしてから右上の閉じるボタンで終了しようとする)を行ったところ、こちらも先にAのBeforeCloseに流れて一連の処理を行った後、空白のブックのBeforeCloseに流れていました。
83
91
 
84
- 2. Bと空白のブックを同時に起動させ、空白のブックをアクティブにして右上の閉じるボタンから終了すると、Bのブックだけが終了し、Excel上で終了処理を受け付けない空白のブックが残る。
92
+ 2. Bと空白のブック(文字どうり新規ブックの作成機能で作成したばかりの何も編集していないブック)を同時に起動させ、空白のブックをアクティブにして右上の閉じるボタンから終了すると、Bのブックだけが終了し、Excel上で終了処理を受け付けない空白のブックが残る。
85
- 同様の案件として、空白のブックをアクティブにしてタスクバーからBのブックだけを終了させると、終了処理だけでなくセル操作も受け付けない空白のブックが残る(Excel上のメニューバーなどは動作する)。
93
+ 同様の案件として、空白のブックをアクティブにしてタスクバーからBのブックだけを終了させると、終了処理だけでなくセル操作も受け付けない空白のブックが残る(Excel上のメニューバーなどは動作する)。
94
+ ThisWorkbook.Close Falseの処理に問題があるのかと思い、終了させる前にBをアクティブにするようにしたりIF文と追加して非アクティブ時の挙動について書き足したりしましたが成果無しでした。
86
95
 
87
96
 
97
+ 1.は他のブックの処理実行時にAの方の処理に向かわないようにする(Aの優先度を下げる?)
98
+ 2.はBの終了時に他のブックに影響を与えないようにする(少なくともBの終了処理後に他のブックも正常に終了させれるようにしたい、現状Bの終了処理後のブックはタスクマネージャを起動しないと終了できないのでそれの改善)
88
99
 
89
- 2. に関してはThisWorkbook.Close Falseの処理に問題があるのかと思い、終了させる前にBをアクティブにするようにしたりIF文と追加して非アクティブ時の挙動について書き足したりしましたが成果無しでした。
90
100
 
91
101
  申し訳ありませんが問題解決へのお力添えをお願いします。