|
下記コードにおいて
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
|
|