同じ名前のブックは開けない
Excelは同じ名前(拡張子まで一致している)のブックを同時に開くことができません。
そのため新規ブックを保存する際、同名のブックを開いている限りエラーが発生します。
※保存先は関係なく、名前だけで判断されてしまいます。
同名のブックが開かれていると保存に失敗することは、以下のコードで確認できます。
Public Sub Sample()
'既存のブックを開いておく
Workbooks.Open "C:\excelsample\test.xlsx"
Dim wb As Workbook
Set wb = Workbooks.Add '新規ブックを作成する
On Error Resume Next 'エラー処理を開始する
wb.SaveAs "test.xlsx" '新しく開いたブックに既存のブックと同じ名前をつける
If Err.Number <> 0 Then 'エラーが発生したかの確認
'エラーが発生していた場合、メッセージを表示する
Debug.Print "同名のブックが開かれているため、保存に失敗しました"
End If
End Sub
同名のブックが開かれていないか確認できるサンプルコード
Public Sub Sample2()
Dim name As String, wb As Workbook
Const Target As String = "C:\ファイル名"
'■同名のブックが開かれているかチェック
name = Dir(Target)
'同名のブックが開かれているときの処理
For Each wb In Workbooks
If wb.name = name Then
Debug.Print "同名のブックが開かれています"
Exit Sub
End If
Next wb
'同名のブックを開いていなければ開く
Workbooks.Open Target
End Sub
注意点
- ファイル名(拡張子を含む)は変更してください。



コメント