- 締切済み
サブフォルダ内のフォルダ名取得
連続処理のため、特定フォルダ以下のフォルダ名全てを取得する必要があります。 そこで本に書いてあったコードを試してみたのですが、フォルダ以下のサブフォルダまでしか取得できませんでした。 サブフォルダ以下にもフォルダがあるのですが、どのようにして取得すればいいのでしょうか? ↓以下が試してみてコードになります 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
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- tom11
- ベストアンサー率53% (134/251)
こんにちは、 見た感じエクセルですよね。 確か、エクセルの最新バージョンではないなら、 FileSearch オブジェクトを利用すれば、 最下位のホルダーのファイルまで、検索でしきますよ。 利用方法は、検索した方が、早そうですね。 http://www.moug.net/tech/exvba/0060051.htm ここにあります。 2007だと、このオブジェクトないかも
- redfox63
- ベストアンサー率71% (1325/1856)
以下のようなプロシージャを定義して呼びだして見ましょう 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 といった具合に使います