分かりやすく、使いやすく。

ファイルが存在するかを確認する方法

スポンサーリンク

Excel VBA で指定したパスにファイルが存在するかを確認するには、 Dir 関数を使用する方法と FileSystemObject を使用する方法があります。

  1. Dir 関数を使用する方法
  2. fileSystemObject を使用する方法(後の処理でも fileSystemObject を使う場合)
  3. 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 
スポンサーリンク
スポンサーリンク