VBA:ファイルやフォルダの有無チェック


  • フォルダに対象ファイルがあるか知りたい。
  • 保存先として指定しているフォルダが実際にあるか知りたい。
  • 一括取込み元として指定しているフォルダが実際にあるか知りたい。
  • VBAでツールを作る際にこんな感じの要望はよくあります。
    そこでここではファイルやフォルダの有無チェックの方法について説明していきます。

    ◆ファイルの有無チェック「Dir」利用の場合

    ファイルの有無を調べるにはDir関数を使った方法が単純な気がします。
    以下の1つのコードの結果で判断できます。

    Dir関数は指定したファイルのパスに対象ファイルが存在するかどうかを判定し、ある場合はファイル名を戻します。
    指定したパスにファイルがない場合は「空欄」を返します。パスが「空欄」の場合にDirを使うとエラーになるので、パスが「空欄」の場合の処理を追加します。

    ◆ファイルの有無チェック「FileSystemObject」利用の場合

    ファイルの有無をチェックする際には、「FileSystemObject」を使います。
    これはファイルの移動、コピー、削除、ファイルやフォルダの有無チェック、ファイルやフォルダのパスの取得などができます。
    以下ではファイルがあれば、Functionプロシージャ(ここではFileExistCheck)をTrueで返し、なければFalseで返します。

    ◆フォルダの存在チェック「FileSystemObject」利用の場合

    フォルダの存在をチェックする際にも、「FileSystemObject」を使います。
    ここではフォルダがあればFunctionプロシージャ(ここではchkFolderExist)をTrueで返し、なければFalseで返します。

    ◆フォルダの作成

    フォルダがなかった場合は、フォルダを作成することもできます。
    以下の記事に書きましたのでご覧ください。

    VBA:フォルダの作成「MkDirステートメント」

    【VBA】フォルダ作成「MkDirステートメント」について



    おすすめ