VBAで別のエクセルブックを開いて値を持ってくるのは便利だけどファイルが存在しなかったり既に開いていると面倒くさい事になります。
なのでファイルを開く前に存在確認と既に開いているかの確認をするVBAをChatGPTくんに作らせました。
ファイルを開く前に実行して変なエラーを出さないようにしてやりましょう
Sub CheckFileExistenceAndOpened() Dim filePath As String ' ファイルのパスを格納する変数 ' ファイルのパスを指定します filePath = "C:\Path\to\your\file.xlsx" ' ファイルの存在を確認します If Dir(filePath) = "" Then ' ファイルが存在しない場合 MsgBox "ファイルが存在しません。" Exit Sub ' プロシージャを終了させます End If Dim fileObject As Object ' ファイルを操作するためのオブジェクト変数 ' ファイルを開く前に既に開かれているか確認します On Error Resume Next Set fileObject = Workbooks.Open(filePath, ReadOnly:=True) If Err.Number = 0 Then ' ファイルが開かれていない場合 fileObject.Close False ' ファイルを閉じます Else ' ファイルが既に開かれている場合 MsgBox "ファイルは既に開かれています。" End If On Error GoTo 0 ' メッセージボックスを表示してプロシージャを終了させます MsgBox "処理が完了しました。" End Sub