大体でIT

-ちょっと使えるネタを紹介-

大体でIT

Excel VBAで、ファイルやフォルダの存在チェックをしたい場合は、「Dir関数」やFileSystemObjectの「FileExists」や「FolderExists」を使うとできます。ファイルやフォルダの存在チェックをして、うまくエラー回避をしていきましょう。

はじめに

この記事では、ファイルやフォルダの存在チェックをする方法について、ご紹介します。

ファイルやフォルダの存在チェックは、「Dir関数」や、FileSystemObjectの「FileExists」や「FolderExists」を使うとできます。

Dir関数は、次のようになります。

  • 存在する場合:「ファイル名」もしくは「フォルダ名」
  • 存在しない場合:空欄「""」

FileSystemObjectの「FileExists」や「FolderExists」を使った場合は、次のようになります。

  • 存在する場合:「True」
  • 存在しない場合:「False」

という感じです。

使いどころとしては、フォルダを作成する際に、フォルダの存在をチェックして、フォルダを作成する、といった感じです。

VBAで、フォルダやファイルの操作を自動化していきましょう。

では、ファイルやフォルダの存在チェックをする方法について、解説していきます。

この記事を読むメリット

  • ファイルやフォルダの存在チェックをする方法がわかります

本記事の内容を動画でまとめています

目次から見たい項目へ移動すると便利ですよ。

目次

ファイルの存在をチェックする

まずは、「ファイル」の存在をチェックしてみます。

Dir関数を使う

「Dir関数」を使う方法で、ファイルの存在チェックをしてみます。

Sub TEST1()
    
    Dim A
    'ファイルの存在を確認
    A = Dir("C:\Users\User\Desktop\TEST\TEST1.txt")
    
    MsgBox A
    
End Sub

では、実行してみます。

ファイルが存在する場合は、「ファイル名」

ファイルが存在する場合で、Dir関数を使って、ファイルの存在をチェックしてみます。

ファイルが存在する場合で、Dir関数を使って、ファイルの存在をチェックしてみます

ファイルが存在する場合は、ファイル名を取得できます。

ファイルが存在する場合は、ファイル名を取得できます

ファイルが存在するので、ファイル名を取得できました。

ファイルが存在しない場合は、空欄「""」

ファイルが存在しない場合で、Dir関数を使って、ファイルの存在をチェックしてみます。

ファイルが存在しない場合で、Dir関数を使って、ファイルの存在をチェックしてみます

ファイルが存在しない場合は、空欄「""」となります。

ファイルが存在しない場合は、空欄「

ファイルが存在しないので、空欄「""」となりました。

FileExistsを使う

次は、「FileExists」を使って、ファイルの存在チェックをしてみます。

Sub TEST2()
    
    Dim FSO
    Set FSO = CreateObject("Scripting.FileSystemObject")
    
    Dim A
    'ファイルの存在を確認
    A = FSO.FileExists("C:\Users\User\Desktop\TEST\TEST1.txt")
    
    MsgBox A
    
End Sub

では、実行してみます。

ファイルが存在する場合は、「True」

ファイルが存在する場合で、「FileExists」を使って、ファイルの存在をチェックしてみます。

ファイルが存在する場合で、「FileExists」を使って、ファイルの存在をチェックしてみます

ファイルが存在する場合は、「True」となります

ファイルが存在する場合は、「True」となります

ファイルが存在するので、「True」となりました。

ファイルが存在しない場合は、「False」

ファイルが存在しない場合で、「FileExists」を使って、ファイルの存在をチェックしてみます。

ファイルが存在しない場合で、「FileExists」を使って、ファイルの存在をチェックしてみます

ファイルが存在しない場合は、「False」となります

ファイルが存在しない場合は、「False」となります

ファイルが存在しないので、「False」となりました。

フォルダの存在をチェックする

次は、フォルダの存在をチェックしてみます。

Dir関数を使う

「Dir関数」を使う方法で、フォルダの存在をチェックしてみます。

フォルダのチェックをしたい場合は、第2引数に、「vbDirectory」を入力します。

Sub TEST3()
    
    Dim A
    'フォルダの存在を確認
    A = Dir("C:\Users\User\Desktop\TEST\TEST1", vbDirectory)
    
    MsgBox A
    
End Sub

では、実行してみます。

フォルダが存在する場合は、「フォルダ名」

フォルダが存在する場合で、Dir関数を使って、フォルダの存在をチェックしてみます。

フォルダが存在する場合で、Dir関数を使って、フォルダの存在をチェックしてみます

フォルダが存在する場合は、フォルダ名を取得できます。

フォルダが存在する場合は、フォルダ名を取得できます

フォルダが存在するので、フォルダ名を取得できました。

フォルダが存在しない場合は、空欄「""」

フォルダが存在しない場合で、Dir関数を使って、フォルダの存在をチェックしてみます。

フォルダが存在しない場合で、Dir関数を使って、フォルダの存在をチェックしてみます

フォルダが存在しない場合は、空欄「""」となります。

フォルダが存在しない場合は、空欄「

フォルダが存在しないので、空欄「""」となりました。

FolderExistsを使う

次は、「FolderExists」を使う方法で、フォルダの存在チェックをしてみます。

Sub TEST4()
    
    Dim FSO
    Set FSO = CreateObject("Scripting.FileSystemObject")
    
    Dim A
    'フォルダの存在を確認
    A = FSO.FolderExists("C:\Users\User\Desktop\TEST\TEST1")
    
    MsgBox A
    
End Sub

では、実行してみます。

フォルダが存在する場合は「True」

フォルダが存在する場合で、「FileExists」を使って、フォルダの存在をチェックしてみます。

フォルダが存在する場合で、「FileExists」を使って、フォルダの存在をチェックしてみます

フォルダが存在する場合は、「True」となります。

フォルダが存在する場合は、「True」となります

フォルダが存在するので、「True」となりました。

フォルダが存在しない場合は「False」

フォルダが存在しない場合で、「FileExists」を使って、フォルダの存在をチェックしてみます。

フォルダが存在しない場合で、「FileExists」を使って、フォルダの存在をチェックしてみます

フォルダが存在しない場合は、「False」となります。

フォルダが存在しない場合は、「False」となります

フォルダが存在しないので、「False」となりました。

フォルダがない場合フォルダを作成する

フォルダがある場合に、フォルダを作成しようとすると、エラーとなってしまいます。

そんな場合は、フォルダの存在チェックをして、フォルダを作成するとエラーを回避できます。

フォルダが存在する場合フォルダ作成でエラー

フォルダが存在する場合で、フォルダを作成してみます。

フォルダが存在するので、エラーとなってしまいます。

Sub TEST5()
    
    'フォルダを作成
    MkDir "C:\Users\User\Desktop\TEST\TEST1"
    
End Sub

では、実行してみます。

フォルダが存在する場合はエラー

既に同名のフォルダがある場合に、フォルダを作成してしまうとエラーになります。

既に同名のフォルダがある場合に、フォルダを作成してしまうとエラーになります

既に同名のフォルダがあるので、エラーとなってしまいます。

既に同名のフォルダがあるので、エラーとなってしまいました

こんな感じで、エラーとなってしまいます。

フォルダの存在チェックをして、フォルダを作成すると、エラーを回避できます。

フォルダの存在チェックをしてフォルダを作成

フォルダの存在チェックをして、フォルダを作成してみます。

同じ名前のフォルダがない場合に、フォルダを作成します。

Sub TEST6()
    
    'フォルダが存在しない場合
    If Dir("C:\Users\User\Desktop\TEST\TEST1", vbDirectory) = "" Then
        'フォルダを作成
        MkDir "C:\Users\User\Desktop\TEST\TEST1"
    End If
    
End Sub

では、実行してみます。

フォルダが存在する場合は、フォルダ作成をスキップ

既に同じ名前のフォルダが存在する場合は、フォルダ作成をスキップします。

既に同じ名前のフォルダが存在する場合は、フォルダ作成をスキップします

既に同じ名前のフォルダがある場合は、実行をスキップして、エラーを回避できます。

既に同じ名前のフォルダがある場合は、実行をスキップして、エラーを回避できました

エラーを回避できました。

フォルダはそのままです。

フォルダが存在しない場合は、フォルダ作成

もちろん、同じ名前のフォルダがない場合は、フォルダを作成できます。

やってみます。

同じ名前のフォルダがない場合は、フォルダを作成します

同じ名前のフォルダがないので、新規にフォルダを作成できます。

同じ名前のフォルダがないので、新規にフォルダを作成できました

新規にフォルダを作成できました。

こんな感じで、エラー回避をするために、フォルダやファイルのチェックをして、フォルダやファイルの操作をしましょう。

おわりに

この記事では、ファイルやフォルダの存在チェックをする方法について、ご紹介しました。

ファイルやフォルダの存在チェックは、「Dir関数」や、FileSystemObjectの「FileExists」や「FolderExists」を使うとできます。

Dir関数は、次のようになります。

  • 存在する場合:「ファイル名」もしくは「フォルダ名」
  • 存在しない場合:空欄「""」

FileSystemObjectの「FileExists」や「FolderExists」を使った場合は、次のようになります。

  • 存在する場合:「True」
  • 存在しない場合:「False」

という感じです。

使いどころとしては、フォルダを作成する際に、フォルダの存在をチェックして、フォルダを作成する、といった感じです。

VBAで、フォルダやファイルの操作を自動化していきましょう。

参考になればと思います。最後までご覧くださいまして、ありがとうございました。

関連する記事から探す

カテゴリから探す

カテゴリから見たい項目を探すと便利ですよ。

サイト内を検索する

↓キーワードを入力する

アーカイブから探す