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で処理と処理の間に一定時間を空けて実行する方法

今回はVBAで処理と処理の間に一定時間を空けて実行する方法について、備忘も兼ねて記載します。 (0)目次&概説 (1) Application.wait (2) サンプルプログラムソース (3) サン …

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

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

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

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

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

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

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

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

  • English (United States)
  • 日本語
Top