| 
    
     |  | 下記コードにおいて IF条件にて開いているブックを保存して終了させたいのですが
 エクセル自体が残ってしまいます
 いけないところをご教授ください
 
 下記コードは
 開いているブックを保存するときに
 他のブックを開いてデータを転記するというものですが
 他のブックが誰かに開かれていた場合
 警告を出したうえで、ブックを保存し、
 エクセル自体を終了させるというものです
 
 
 Private Sub Workbook_BeforeClose(Cancel As Boolean)
 
 UserForm7.Show vbmoderess
 DoEvents
 
 
 Dim mBk As Workbook
 Dim i  As Long
 Dim j  As Variant
 Set mBk = _
 Workbooks.Open( _
 WorksheetFunction.Substitute(ThisWorkbook.Path, "保存フォルダー", "") & _
 "マスターファイル.xls", Password:="3434")
 
 If ActiveWorkbook.ReadOnly = True Then
 
 
 ActiveWorkbook.Close
 
 Unload UserForm7
 
 
 MsgBox "マスターファイルへ更新できませんでした。次回このファイルを閉じた時に更新します"
 
 
 ThisWorkbook.Save
 
 
 Application.Quit
 
 
 End If
 
 Exit Sub
 
 
 With ThisWorkbook.Worksheets("工事台帳")
 i = .Range("g2").Value
 j = Application.Match(i, mBk.Worksheets("マスター台帳").Range("c:c"), 0)
 If IsError(j) Then
 MsgBox "ファイル名無し"
 mBk.Close
 Exit Sub
 End If
 mBk.Worksheets("マスター台帳").Cells(j, 1).Value = .Range("e2").Value
 mBk.Worksheets("マスター台帳").Cells(j, 2).Value = .Range("f2").Value
 mBk.Worksheets("マスター台帳").Cells(j, 4).Value = .Range("e3").Value
 
 mBk.Worksheets("マスター台帳").Cells(j, 5).Value = .Range("e5").Value
 mBk.Worksheets("マスター台帳").Cells(j, 6).Value = .Range("n5").Value
 mBk.Worksheets("マスター台帳").Cells(j, 7).Value = .Range("n18").Value
 
 mBk.Worksheets("マスター台帳").Cells(j, 8).Value = .Range("h26").Value
 mBk.Worksheets("マスター台帳").Cells(j, 9).Value = .Range("h20").Value
 mBk.Worksheets("マスター台帳").Cells(j, 10).Value = .Range("h21").Value
 
 mBk.Worksheets("マスター台帳").Cells(j, 11).Value = .Range("h22").Value
 mBk.Worksheets("マスター台帳").Cells(j, 12).Value = .Range("h23").Value
 mBk.Worksheets("マスター台帳").Cells(j, 13).Value = .Range("h24").Value
 
 mBk.Worksheets("マスター台帳").Cells(j, 14).Value = .Range("h25").Value
 
 
 End With
 mBk.Save
 mBk.Close
 
 
 Application.DisplayAlerts = False
 
 ThisWorkbook.Save
 
 Unload UserForm7
 Application.Quit
 
 
 End Sub
 
 |  |