
vba初心者です。
フォルダの中に複数のサブフォルダがあり、その各サブフォルダ内のファイルのパスをリスト化したいです。
サブフォルダごとに行を分けて、それぞれの行のB,C,D,E......列に順にファイルパスを〇〇元データというブックに表示させたいのですが、全サブフォルダの全ファイルのパスが全て同じ行のB,C,D,E,,,,,列に表示されるところまでしかわかりません。
色々調べてみたのですがどうしても解決できず困っています。よろしくお願いいたします。
今:
2行目に サブフォルダ1のファイルパス1、サブフォルダ1のファイルパス2、サブフォルダ2のファイルパス1、サブフォルダ2のファイルパス2
目指す形:
2行目に サブフォルダ1のファイルパス1、サブフォルダ1のファイルパス2
3行目に サブフォルダ2のファイルパス1、サブフォルダ2のファイルパス2
No.1ベストアンサー
- 回答日時:
こんにちは
ご質問文に疑問点が多すぎるのですが・・・
>vba初心者です。
アプリケーションが不明ですけれど、
>それぞれの行のB,C,D,E......列に~
とあるので、エクセルってことと推測しました。
>サブフォルダごとに行を分けて、それぞれの行の
>B,C,D,E......列に順にファイルパスを~
パス(=フルパス)だとするなら、前半は同じものが並ぶだけだし、かつ列に並べる形式だとまともに表示させようとすると、横にメッチャ長くなって見にくくてしかたがないのではと想像してしまいます。
また、ご質問文の方式だと、リスト化するのは1階層下のフォルダまで限定という意味でしょうか?
サブフォルダ内ではなく、元フォルダ直下のファイルは無視ってことなのでしょうかね・・・
さらには、孫フォルダがあっても、それは無視ということなのかなぁ?
あるいは、孫フォルダまでは(ファイルと同じ扱いで)パスを列に記入して、それ以下の階層のファイルは無視ってことなのかなぁ・・・
>色々調べてみたのですがどうしても解決できず困っています
まぁ、内容や結果は別にして、方法がわかれば良いものと考えました。
以下は、内容的にはご質問文そのままとして、作成してみた一例です。
・元フォルダのサブフォルダのみを対象とする
(元フォルダ直下のファイルは無視)
・サブフォルダ直下のファイルのパスを、1行内に(列を変えて)順に転記
(サブフォルダ下のフォルダ以降は無視)
・サブフォルダ毎に1行を使用するものとする
と解釈しました。
※ 上の疑問で記したように、見にくい結果になりますけれど、方法がわかれば良いものと考えました。
考え方の一例なので、実際の目的の内容に合わせて応用なされば宜しいでしょう。
※ 方法のみなので、元フォルダの指定、出力対象シート等は固定にしてあります。
(出力シートはアクティブシートにしてあります)
以下、ご参考までに。
Sub Q_13227758()
Dim fs, folder, file
Dim sh As Worksheet, rg As Range
Const fso = "Scripting.FileSystemObject"
Const fPath = "C:\Users\USERNAME\hoge" '←調査対象フォルダパス
Set sh = ActiveSheet '←出力対象シート
sh.Cells.ClearContents
Set rg = sh.Cells(2, 1)
Set fs = CreateObject(fso)
If Not fs.folderExists(fPath) Then Exit Sub
For Each folder In fs.getfolder(fPath).subFolders
For Each file In folder.Files
rg.Value = file.Path
Set rg = rg.Offset(, 1)
Next file
Set rg = sh.Cells(rg.Row + 1, 1)
Next folder
End Sub
お礼が大変遅くなりた申し訳ありません。
教えていただいた通り試したところ、思っていた通りに動きました。
本当に助かりました。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ISOファイルとMDSファイル
-
USBメモリー上の MP4 ファイル...
-
イーファンビューでwebpファイ...
-
エクセルでのアクセス履歴をと...
-
非サポートファイルとは…???
-
ccdファイルはどのようにして使...
-
dviファイルをwindows上で見る...
-
2つめのExcelファイルを開くと...
-
MGRファイルについて
-
エクセルでファイル名が毎回違...
-
変えてしまったファイル形式を...
-
DVD decrypterから外付けHDDへ...
-
フォルダ内のexcelファイルを順...
-
生鮮MDシステムについて。
-
エクセル 複数ファイルの一括...
-
USBの読み取り専用を解除する方法
-
access2021 強制終了してしまう
-
差し込み印刷の元データファイ...
-
【Excel VBA】ファイル名が一...
-
VBA ExecuteExcel4Macro 型が一...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ISOファイルとMDSファイル
-
エクセルの循環参照、?
-
ccdファイルはどのようにして使...
-
イーファンビューでwebpファイ...
-
エクセルでのアクセス履歴をと...
-
あるエクセルファイル。なんの...
-
エクセルでファイル名が毎回違...
-
2つめのExcelファイルを開くと...
-
拡張子exeのファイルの開き方を...
-
USBメモリー上の MP4 ファイル...
-
エクセル2016で、エクセル97-20...
-
変えてしまったファイル形式を...
-
VBAをいじって保存したら拡張子...
-
ドキュメントに保存していたエ...
-
複数Excelファイルを開いた際の...
-
WORDファイルをIllustratorに変...
-
InDesignファイルをPhotoshopか...
-
[Googleスプレッドシート]エク...
-
DVDfab を使ってます。 img フ...
-
【至急】暗号化されたエクセル...
おすすめ情報