• 締切済み

サブフォルダ内のフォルダ名取得

連続処理のため、特定フォルダ以下のフォルダ名全てを取得する必要があります。 そこで本に書いてあったコードを試してみたのですが、フォルダ以下のサブフォルダまでしか取得できませんでした。 サブフォルダ以下にもフォルダがあるのですが、どのようにして取得すればいいのでしょうか? ↓以下が試してみてコードになります With CreateObject("Scripting.FileSystemObject")  With .getfolder(Start_Path)   For Each Obj_Folder In .subfolders    WorkSheets.Cells(i, 2).Value = Obj_Folder.name    i = i + 1   Next Obj_Folder  End With End With

みんなの回答

  • tom11
  • ベストアンサー率53% (134/251)
回答No.2

こんにちは、 見た感じエクセルですよね。 確か、エクセルの最新バージョンではないなら、 FileSearch オブジェクトを利用すれば、 最下位のホルダーのファイルまで、検索でしきますよ。 利用方法は、検索した方が、早そうですね。 http://www.moug.net/tech/exvba/0060051.htm ここにあります。 2007だと、このオブジェクトないかも

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

以下のようなプロシージャを定義して呼びだして見ましょう Sub GetSubFolders(objFolder as Object, ByRef row as integer, col as Integer)   dim objSub as Object   for each objSub in objFolder.SubFolders     row = row + 1     Cells(row,col).Value = objSub.Name     if objSub.SubFolders.count>0 then       ' さらに子フォルダーがある場合再帰を使う       GetSubFolders objSub, row, col+1     end if   next End Sub 呼び出し元では    WorkSheets.Cells(i, 2).Value = Obj_Folder.name    GetSubFiolders Obj_Folder, i, 3    i = i + 1 といった具合に使います

関連するQ&A