Excel VBAでファイルの存在有無を確認する方法|Dir関数でチェック

 

ExcelVBA 指定したファイルが存在するかをプログラムで確認します。これにより、ファイル操作時のエラーを防ぐことができます。使い方や注意点など、サンプルコードをもとに具体的に解説します。

 

📌 「これ、自動化できたらラクなのに…」と思ったこと、ありませんか?
実はその作業、Excelマクロで簡単に自動化できるかもしれません。
「でもマクロって難しそう…」という方のために、完全初心者向けの入門記事をご用意しました!

👇実務で“そのまま使える”テンプレ付きで、コピペするだけ
初心者向けエクセルマクロの作り方を解説|コピペOK実務テンプレ付き

 

Excel VBAでファイルが存在するか確認する用途

 

以下のようなシーンで利用されます。

 

1.ファイルを開く前に存在を確認する。

2.古いファイルを削除する前に存在確認する。

3.ファイルの自動処理(例: バックアップ作成、データ更新)を行う前に準備状況を確認する。

ファイル存在チェックの基本:Dir関数

使い方

Dir 関数を使用して、指定したパスのファイルが存在するかをチェックします。

ポイント

1.ファイル名とパス
正確なファイル名とパスを指定しないと、存在していても見つからない場合があります。

2.フォルダとファイルの区別
Dir 関数はファイルだけでなくフォルダも検出可能です。

3.ワイルドカードの使用
ワイルドカード(例: * や ?)を使用する場合、複数の一致がある場合に注意が必要です。

 

【サンプルコード】If文を使ったファイル存在チェックの書き方(VBA)

 

指定したファイルが存在するかを確認するコード
  1. Option Explicit
  2. Sub CheckFileExistence()
  3.     Dim filePath As String
  4.     Dim fileExists As Boolean
  5.     
  6.     ' チェックしたいファイルのパスを指定
  7.     filePath = "C:\Users\User\Desktop\sourceFile\motofile.txt"
  8.     
  9.     ' ファイルの存在を確認
  10.     If Dir(filePath) <> "" Then
  11.         fileExists = True
  12.     Else
  13.         fileExists = False
  14.     End If
  15.     
  16.     ' 結果を表示
  17.     If fileExists Then
  18.         MsgBox "ファイルは存在します: " & filePath
  19.     Else
  20.         MsgBox "ファイルが見つかりません: " & filePath
  21.     End If
  22. End Sub

 

1.Dir関数を使用して、指定したパスのファイルを探します。

2.ファイルが存在する場合、Dir はそのファイル名を返します。存在しない場合は空文字列 ("") を返します。

3. 結果を変数 fileExists に格納し、ユーザーに通知します。

 

自分の実力を客観的にチェックしたい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集をご用意しました。

👉無料ExcelVBAベーシック選択問題138問

 

指定フォルダ内に特定のファイルが存在するかを確認するコード

Option Explicit

Sub CheckMultipleFiles()
    Dim folderPath As String
    Dim fileName As String
    Dim targetFile As String
    Dim fileFound As Boolean
    
    ' フォルダのパスと確認したいファイル名を指定
    folderPath = "C:\Users\User\Desktop\sourceFile\"
    targetFile = "motofile.txt"
    
    ' フォルダ内を検索
    fileName = Dir(folderPath & targetFile)
    fileFound = (fileName <> "")
    
    ' 結果を表示
    If fileFound Then
        MsgBox "ファイルが見つかりました: " & folderPath & fileName
    Else
        MsgBox "指定したファイルは存在しません: " & folderPath & targetFile
    End If
End Sub

 

フォルダの存在チェックも行う場合は、別途フォルダ存在チェックを実装します。ネットワークドライブの場合、アクセス権や接続状況によって結果が異なることがあります。

 

記憶定着問題集

操作方法:1.●●●をクリック(スマホはタップ)で答え表示。2.答えをクリック(スマホはタップ)で●●●表示。1⇔2を繰り返すことで、記憶を定着できます。

1.●●●関数を使用して、指定したパスのファイルを探します。

2.ファイルが存在する場合、●●● はそのファイル名を返します。存在しない場合は空文字列 ("") を返します。

3. 結果を変数 fileExists に格納し、ユーザーに通知します。

 

DIRの関連記事はここをクリックで一覧表示します

 

Excel VBAエキスパートベーシックとスタンダード、どちらを選べばいいか判断が難しい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集を用意しました。

👉無料ExcelVBAベーシック選択問題138問