ray88’s diary

お仕事で困ったとき用の自分用の覚書

Dir関数(ファイルの存在確認・フォルダ内の全てのファイルを調べる)

■Dir関数
 ファイルの存在確認。パスを含まないファイル名を返す。(つまり戻り値String型)

Dir("ファイルパス")

・引数に指定したファイル名が存在しないと空欄を返す。
・引数にワイルドカード「*」を指定した場合はいかのような動きをする。

 ①最初にDir関数を実行したときワイルドカードに該当するファイルの1つを返す
 ②引数を省略してDir関数を実行したとき同じプロシージャ内で前回指定した
  ワイルドカードに該当するファイルのうち、まだ返していないファイルを返す
 ③ワイルドカードに該当する全てのファイルを返した後Dir関数は空欄を返す

  ★上記の性質を利用して、任意のフォルダ内の全てのブックを調べる

  ※参考:途中でループを抜ける場合は「Exit Do 」で抜けられる

Sub test()
        Dim targetPath As String
        Dim fileName As String
    
        '調べたいフォルダのパスを設定
        targetPath = "C:¥Sample"

      'Dir関数の引数にワイルドカード含む引数設定(最初のDir関数実行)
        fileName = Dir(targetPath & "\" & "*.xlsx")

      'Dir関数の戻り値が空欄になるまで繰り返し
        Do While fileName <> ""
          MsgBox fileName
          'Dir関数の引数を省略 (2回目以降引数省略でDir関数実行)
          fileName = Dir()
        Loop
  End Sub