【Excel VBA】ファイルの存在チェック方法(FileSystemObject FileExists)

りゅう
こんにちは!りゅう(@ryupong_b)です。
今回は、「ファイルの存在チェック」について解説していきます。
はじめに

ファイルを取り扱うプログラムを書く場合、必ずファイルの存在チェックを実施しましょう
FileSystemObjectのFileExistsメソッドを使用するのがオススメです。
具体的な使用方法を解説しますので、ぜひ最後までお付き合いください。

この記事を読むメリット
  • ファイルの存在チェックの方法が分かります。
  • 類似機能であるDir関数との違いを解説します。
めい
結論だけ知りたい方は、目次からサンプルコードの章をクリックしてください。

FileSystemObject FileExistsメソッド

ファイルの存在チェックは、FileSystemObjectのFileExistsメソッドを使用します。

構文

構文

FileSystemObject.FileExists(filespec)

引数

# 引数 必須 詳細
1 filespec 調べたいファイルパスをフルパスで指定します。

戻り値

  • ファイルが存在する場合:True
  • ファイルが存在しない場合:False

サンプルコード

前提

以下のようなファイル構成であることが前提として解説していきます。

ファイル存在チェック

サンプルコード

マクロ本体と同列のフォルダに配置されている、「vba-hack.txt」ファイルの存在をチェックするサンプルコードです。

サンプルコード
Public Sub checkFileExist()
    Dim FSO As Object       ' FileSystemObject
    Dim filePath As String  ' チェック対象ファイルパス

    ' FileSystemObjectインスタンス生成
    Set FSO = CreateObject("Scripting.FileSystemObject")

    ' ファイルパス生成
    filePath = ThisWorkbook.Path & "\vba-hack.txt"

    If FSO.FileExists(filePath) Then

        ' ファイルが存在する場合
        MsgBox "ファイルが存在します。", vbInformation
    Else

        ' ファイルが存在しない場合
        MsgBox "ファイルが存在しません。", vbInformation
    End If
End Sub

Dir関数の使用を推奨しない理由

本記事では、FileSystemObjectのみをご紹介していますが、Dir関数でも同じチェックが可能です。
ただしDir関数では、「\\」から始まるネットワークドライブの検索ができません。
従いまして、今回はFileExistsメソッドのご紹介をいたしました!

最後に

いかがでしたでしょうか。
予期せぬエラーを発生しないためにも、ファイルの存在チェックは必ず実施してください!

この記事が、読者さまのお力になれれば嬉しいです!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

大手外資系コンサルティングファーム勤務。ExcelVBA歴は8年。金融関係のプロジェクトにて約100万レコードを処理するマクロの開発実績あり。ExcelVBAの基礎・応用情報を発信中。

コメント

コメントする

CAPTCHA