Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

VBA

VBAでファイルやフォルダの存在チェックを行う方法

投稿日:2021年5月18日 更新日:

<目次>

(1) VBAでファイルやフォルダの存在チェックを行う方法
 (1-1) 構文
 (1-2) サンプルプログラム

(1) VBAでファイルやフォルダの存在チェックを行う方法

(1-1) 構文

●ファイルの存在チェック

CreateObjectファンクションで「FileSystemObject」オブジェクトを生成して、そのFileExistsメソッドを使います。FileExistsメソッドの引数には存在チェック対象のファイルパスを与えます。

(構文)

CreateObject("Scripting.FileSystemObject").FileExists(CheckPath)
 
これを外から呼び出せるような簡単なファンクションにしたのが次の例です。引数にチェック対象のファイルパスを与えて、結果をBoolean型で戻り値として返却します。
 
(ファンクション)
Function IsFile(ByVal CheckPath As String) As Boolean
    IsFile = CreateObject("Scripting.FileSystemObject").FileExists(CheckPath)
End Function

目次にもどる

●フォルダの存在チェック

CreateObjectファンクションで「FileSystemObject」オブジェクトを生成して、そのFolderExistsメソッドを使います。FolderExistsメソッドの引数には存在チェック対象のフォルダパスを与えます。

(構文)

CreateObject("Scripting.FileSystemObject").FolderExists(CheckPath)
 
これを外から呼び出せるような簡単なファンクションにしたのが次の例です。引数にチェック対象のフォルダパスを与えて、結果をBoolean型で戻り値として返却します。
 
(ファンクション)
Function IsFolder(ByVal CheckPath As String) As Boolean
    IsFolder = CreateObject("Scripting.FileSystemObject").FolderExists(CheckPath)
End Function

 

目次にもどる

(1-2) サンプルプログラム

上記の稼働確認のための簡単なサンプルプログラムをご紹介します。

(図121)

(サンプル)

Public Sub checkFileFolderExist()

    '# フォルダの存在チェック対象のパス
    Dim checkPath1 As String: checkPath1 = "C:\Temp\ExistCheck\aaa" '# 存在するフォルダ
    Dim checkPath2 As String: checkPath2 = "C:\Temp\ExistCheck\bbb" '# 存在するフォルダ
    Dim checkPath3 As String: checkPath3 = "C:\Temp\ExistCheck\ccc" '# 存在しないフォルダ
    Dim checkPath4 As String: checkPath4 = "C:\Temp\ExistCheck\ddd" '# 存在するフォルダ

    '# フォルダの存在チェック結果をコンソールに出力
    Debug.Print checkPath1 & " exist check result : " & IsFolder(checkPath1)
    Debug.Print checkPath2 & " exist check result : " & IsFolder(checkPath2)
    Debug.Print checkPath3 & " exist check result : " & IsFolder(checkPath3)
    Debug.Print checkPath4 & " exist check result : " & IsFolder(checkPath4)

    '# ファイルの存在チェック
    Dim checkFile1 As String: checkFile1 = "C:\Temp\ExistCheck\001.txt" '# 存在するフォルダ
    Dim checkFile2 As String: checkFile2 = "C:\Temp\ExistCheck\002.txt" '# 存在しないフォルダ
    Dim checkFile3 As String: checkFile3 = "C:\Temp\ExistCheck\003.txt" '# 存在しないフォルダ
    Dim checkFile4 As String: checkFile4 = "C:\Temp\ExistCheck\004.txt" '# 存在するフォルダ
    
    '# ファイルの存在チェック結果をコンソールに出力
    Debug.Print checkFile1 & " exist check result : " & IsFile(checkFile1)
    Debug.Print checkFile2 & " exist check result : " & IsFile(checkFile2)
    Debug.Print checkFile3 & " exist check result : " & IsFile(checkFile3)
    Debug.Print checkFile4 & " exist check result : " & IsFile(checkFile4)
    
End Sub

'# フォルダの存在チェック用のファンクション
Function IsFolder(ByVal CheckPath As String) As Boolean
    IsFolder = CreateObject("Scripting.FileSystemObject").FolderExists(CheckPath)
End Function

'# ファイルの存在チェック用のファンクション
Function IsFile(ByVal CheckPath As String) As Boolean
    IsFile = CreateObject("Scripting.FileSystemObject").FileExists(CheckPath)
End Function

 

上記のVBAプログラムを次のようなディレクトリに対して実行します。

(図122)

実行の結果、あるものは「true」、ないものは「false」で返却されます。
(動画122)

目次にもどる

Adsense審査用広告コード


Adsense審査用広告コード


-VBA

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

VBAで複数のブックの内容を集計する方法

<目次> (1) VBAで複数のブックの内容を集計する方法  (1-1) 構文  (1-2) サンプルプログラム (1) VBAで複数のブックの内容を集計する方法 VBAで複数のブックに記載された内容 …

VBAでシートをループする方法について

  <目次> (1) VBAでシートをループする方法について  (1-1) 構文  (1-2) サンプルプログラム (1) VBAでシートをループする方法について VBAの処理でブック内の「 …

VBAでシート名をブックを手で開かずに取得してリネームする方法

<目次> (1) VBAでシート名をブックを手で開かずに取得してリネームする方法  (1-1) 構文  (1-2) サンプルプログラム  (1-3) 操作動画紹介・VBAダウンロード (1) VBAで …

VBAによる郵便番号の正規表現マッチ確認関数&置換関数の作成

  (0)目次&概説 (1) 正規表現とは (2) 正規表現はどのような場面で利用される? (3) VBAによる正規表現の簡易チェックツール  (3-1) 郵便番号を抽出したい  (3-2) …

VBAで画像を分類に応じて適切なフォルダに仕分けるプログラム

(0)目次&概説 (1) マクロ概要 (2) 使用方法 (3) アルゴリズム概要 (4) プログラム (1) マクロ概要 本マクロは画像ファイルを適切なフォルダに仕分けるためのマクロです。前提として、 …

  • English (United States)
  • 日本語
Top