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

回答編集履歴

6

ソースのリファクタリング

2021/02/09 14:08

投稿

negi0206
negi0206

スコア0

answer CHANGED
@@ -73,7 +73,7 @@
73
73
  If CloseMode = 0 Then
74
74
  formCloseFlg = True
75
75
 
76
- If Workbooks.Count = 1 And formCloseFlg Then
76
+ If Workbooks.Count = 1 Then
77
77
  Application.Quit
78
78
 
79
79
  End If

5

ソース間違ってたので修正

2021/02/09 14:08

投稿

negi0206
negi0206

スコア0

answer CHANGED
@@ -44,15 +44,18 @@
44
44
  '同プロセス内で他のブックで閉じる操作等をした場合
45
45
  If exApp.Workbooks.Count > 1 Then
46
46
  For Each wbIdx In exApp.Workbooks
47
+ If wbIdx.Name <> ThisWorkbook.Name Then
47
- formCloseFlg = True
48
+ formCloseFlg = True
48
- Workbooks(wbIdx.Name).Close
49
+ Workbooks(wbIdx.Name).Close
49
- Application.Visible = False
50
+ Application.Visible = False
50
- formCloseFlg = False
51
+ formCloseFlg = False
51
52
 
52
- 'クローズを中止
53
+ 'クローズを中止
53
- Cancel = True
54
+ Cancel = True
54
-
55
+
55
- Exit For
56
+ Exit For
57
+
58
+ End If
56
59
 
57
60
  Next
58
61
 

4

補足の追加

2021/02/09 13:45

投稿

negi0206
negi0206

スコア0

answer CHANGED
@@ -5,6 +5,8 @@
5
5
  BeforeCloseイベントでCancelをそのままTrueにしてしまうと最後のブックも閉じられなくなるため、このような形になりました。
6
6
  (当ブックのみ起動している場合も含む)
7
7
 
8
+ 難点な部分は、BeforeCloseイベントを循環参照のように動かすため、保守性が少々辛いところです。
9
+
8
10
  プロセスの状態は質問投稿時点と同様のままです。
9
11
  開発環境①②③で共通対応可能の認識です。
10
12
 

3

ソースのデグレ修正

2021/02/09 13:38

投稿

negi0206
negi0206

スコア0

answer CHANGED
@@ -21,7 +21,7 @@
21
21
  formCloseFlg = False
22
22
 
23
23
  'ブックの非表示
24
- Windows("test_main.xlsm").Visible = False
24
+ Windows(ThisWorkbook.Name).Visible = False
25
25
  'ユーザーフォームの表示
26
26
  UserForm1.Show vbModeless
27
27
 

2

文言の修正と補足の追加

2021/02/09 13:33

投稿

negi0206
negi0206

スコア0

answer CHANGED
@@ -2,10 +2,11 @@
2
2
  大きな点はBeforeCloseイベントの追加とフォームを閉じる際のフラグを設定したことです。
3
3
  (Application.quit的な動きだとBeforeCloseイベントには入らないと思い込んでた)
4
4
 
5
- BeforeCloseイベントでCancelをそのままTrueにすると最後のブックも閉じられなくなりま
5
+ BeforeCloseイベントでCancelをそのままTrueにしてしまうと最後のブックも閉じられなくなるため、このような形になりました
6
6
  (当ブックのみ起動している場合も含む)
7
7
 
8
8
  プロセスの状態は質問投稿時点と同様のままです。
9
+ 開発環境①②③で共通対応可能の認識です。
9
10
 
10
11
  test.xlsm
11
12
  修正なし

1

説明の補足を追加

2021/02/09 13:27

投稿

negi0206
negi0206

スコア0

answer CHANGED
@@ -5,6 +5,8 @@
5
5
  BeforeCloseイベントでCancelをそのままTrueにすると最後のブックも閉じられなくなります。
6
6
  (当ブックのみ起動している場合も含む)
7
7
 
8
+ プロセスの状態は質問投稿時点と同様のままです。
9
+
8
10
  test.xlsm
9
11
  修正なし
10
12