休日更新の備忘録

休日のみ更新予定の個人的備忘録置き場

【VBA】フォルダ配下のファイル分繰り返す

スポンサーリンク

Dim fso As Object  
Dim folderPath As String  
Dim filePath As Object
Set fso = CreateObject("Scripting.FileSystemObject")
' 「folderPath」配下のファイル数分繰り返す。
For Each filePath In fso.getFolder(folderPath).Files
    ' 
    ' 繰り返し実行したい処理を記述する
    ' 
Next filePath

フォルダ配下のファイル分繰り返す

ここでは指定のフォルダ配下に存在するファイル分同じ処理を繰り返したい場合の処理について解説します。 方法は複数ありますが今回は他言語でも活用されることのあるForEach文を使います。

ForEach文では配列に対して1要素ずつ最後の要素になるまで変数に代入し繰り返しをします。
ForEach~Next文の中で
Workbooks.Open (filePath)
と記述すればfolderPath配下がエクセルファイルだけの場合はエクセルファイルを1つずつ開くことができます。

もっとも、繰り返し中に何をやるか考えるのが一番大変なことですが・・・。