ファイルが存在するかを確認する方法
スポンサーリンク
Excel VBA で指定したパスにファイルが存在するかを確認するには、 Dir 関数を使用する方法と FileSystemObject を使用する方法があります。
- Dir 関数を使用する方法
- fileSystemObject を使用する方法(後の処理でも fileSystemObject を使う場合)
- fileSystemObject を使用する方法(後の処理で fileSystemObject を使わない場合)
Dir 関数を使用する方法
Dir関数は、引数に渡したパスにファイルが存在する場合は、そのファイル名を返します。その為、次の方法でファイルの存在を確認することができます。
VBA(実行可能なサンプルコード) | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | Option Explicit Sub test() Dim filePath As String filePath = "c:\temp\売上集計表.xlsx" If Dir(filePath) <> "" Then 'ファイルが存在する場合、こっちが実行される。 Debug.Print filePath & "は存在します。" Else 'ファイルが存在しない場合、こっちが実行される。 Debug.Print filePath & "は存在しません。" End If End Sub |
fileSystemObject を使用する方法(後の処理でも fileSystemObject を使う場合)
fileSystemObject の FileExists は引数に指定したパスにファイルが存在する場合は True を、存在しない場合は False を返します。サンプルコードは次の通りです。
VBA(実行可能なサンプルコード) | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | Option Explicit Sub test() Dim filePath As String Dim objFileSystem As Object filePath = "c:\temp\売上集計表.xlsx" Set objFileSystem = CreateObject("Scripting.FileSystemObject") If objFileSystem.FileExists(filePath) Then 'ファイルが存在する場合、こっちが実行される。 Debug.Print filePath & "は存在します。" Else 'ファイルが存在しない場合、こっちが実行される。 Debug.Print filePath & "は存在しません。" End If Set objFileSystem = Nothing End Sub |
fileSystemObject を使用する方法(後の処理で fileSystemObject を使わない場合)
fileSystemObject をファイルの存在チェックにだけ使用し、後に続く処理で使用しない場合は、次のように With 句を使用すれば、使用後に Nothing をセットし忘れることがありません。
VBA(実行可能なサンプルコード) | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | Option Explicit Sub test() Dim filePath As String filePath = "c:\temp\売上集計表.xlsx" With CreateObject("Scripting.FileSystemObject") If .FileExists(filePath) Then 'ファイルが存在する場合、こっちが実行される。 Debug.Print filePath & "は存在します。" Else 'ファイルが存在しない場合、こっちが実行される。 Debug.Print filePath & "は存在しません。" End If End With End Sub |
スポンサーリンク