Loading [MathJax]/extensions/tex2jax.js

Rainbow Engine

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

VBA

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

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

<目次>

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

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

(1-1) 構文

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

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

(構文)

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

目次にもどる

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

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

(構文)

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

 

目次にもどる

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

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

(図121)

(サンプル)

  1. Public Sub checkFileFolderExist()
  2.  
  3. '# フォルダの存在チェック対象のパス
  4. Dim checkPath1 As String: checkPath1 = "C:\Temp\ExistCheck\aaa" '# 存在するフォルダ
  5. Dim checkPath2 As String: checkPath2 = "C:\Temp\ExistCheck\bbb" '# 存在するフォルダ
  6. Dim checkPath3 As String: checkPath3 = "C:\Temp\ExistCheck\ccc" '# 存在しないフォルダ
  7. Dim checkPath4 As String: checkPath4 = "C:\Temp\ExistCheck\ddd" '# 存在するフォルダ
  8.  
  9. '# フォルダの存在チェック結果をコンソールに出力
  10. Debug.Print checkPath1 & " exist check result : " & IsFolder(checkPath1)
  11. Debug.Print checkPath2 & " exist check result : " & IsFolder(checkPath2)
  12. Debug.Print checkPath3 & " exist check result : " & IsFolder(checkPath3)
  13. Debug.Print checkPath4 & " exist check result : " & IsFolder(checkPath4)
  14.  
  15. '# ファイルの存在チェック
  16. Dim checkFile1 As String: checkFile1 = "C:\Temp\ExistCheck\001.txt" '# 存在するフォルダ
  17. Dim checkFile2 As String: checkFile2 = "C:\Temp\ExistCheck\002.txt" '# 存在しないフォルダ
  18. Dim checkFile3 As String: checkFile3 = "C:\Temp\ExistCheck\003.txt" '# 存在しないフォルダ
  19. Dim checkFile4 As String: checkFile4 = "C:\Temp\ExistCheck\004.txt" '# 存在するフォルダ
  20. '# ファイルの存在チェック結果をコンソールに出力
  21. Debug.Print checkFile1 & " exist check result : " & IsFile(checkFile1)
  22. Debug.Print checkFile2 & " exist check result : " & IsFile(checkFile2)
  23. Debug.Print checkFile3 & " exist check result : " & IsFile(checkFile3)
  24. Debug.Print checkFile4 & " exist check result : " & IsFile(checkFile4)
  25. End Sub
  26.  
  27. '# フォルダの存在チェック用のファンクション
  28. Function IsFolder(ByVal CheckPath As String) As Boolean
  29. IsFolder = CreateObject("Scripting.FileSystemObject").FolderExists(CheckPath)
  30. End Function
  31.  
  32. '# ファイルの存在チェック用のファンクション
  33. Function IsFile(ByVal CheckPath As String) As Boolean
  34. IsFile = CreateObject("Scripting.FileSystemObject").FileExists(CheckPath)
  35. End Function

 

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

(図122)

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

目次にもどる

Adsense審査用広告コード


Adsense審査用広告コード


-VBA

執筆者:


comment

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

関連記事

VBAで「実行時エラー ‘429’:ActiveXコンポーネントはオブジェクトを生成できません」が出た時の対処記録

  <目次> (1) VBAで「実行時エラー ‘429’:ActiveXコンポーネントはオブジェクトを生成できません」が出た時の対処記録  (1-1) 発生状況・エラーメッセージ  (1-2 …

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

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

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

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

VBAでcsvを読み込み区切り文字で区切る方法

  <目次> (1) VBAでcsvを読み込み区切り文字で区切る方法  (1-1) 構文  (1-2) サンプルプログラム  (1-3) サンプルプログラムの実行結果 (1) VBAでcsv …

VBAでマウスを自動操作する方法~自動打鍵を目指して~

<目次> (1) VBAでマウスを自動操作する方法  (1-1) マウス操作のために利用する仕組み  (1-2) 構文(HelloWorld)  (1-3) サンプルプログラム (1) VBAでマウス …

  • English (United States)
  • 日本語
S