[[20250220151809]] 『フォルダ名一覧をエクセルにしたい』(たすけて) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『フォルダ名一覧をエクセルにしたい』(たすけて)

お世話になっております。

表題の件で質問させていただきます。

フォルダ内のファイルを一覧にする方法はいろいろと調べて出てきましたが、
フォルダそのもの(ex,『問い合わせ』フォルダ→『20250101〇〇について』フォルダ→やり取りしたメールを画像ファイルにして保存しているとき、『20250101〇〇について』の日付フォルダ)を一括で、A列に日付・B列にフォルダ名となるエクセルの一覧表を作成したいです。

会社のPCのため、コマンドを使って何か。
はできなかったのですが。。。

マクロや他に何かを使って、ファイルでなくフォルダ名の一覧を作る方法はないでしょうか?
今のところ1つずつコピペするしかない現状です。。。

よろしくお願いいたします。

< 使用 Excel:Microsoft365、使用 OS:Windows10 >


 結果のサンプルを示してください。
      A列       B列
 1
 2
 3
 4
 のように、行と列が明確にわかるものにしてください。
 行の最初を半角スペースで始めると、崩れにくいと思います。

 階層構造がよくわかりませんので、
 具体的な説明を追加してもらい、
 それが反映されたサンプルにしてもらうとよいでしょう。

(xyz) 2025/02/20(木) 15:46:55


https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1144006506?query=dos%20%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80%E4%B8%80%E8%A6%A7
(dos) 2025/02/20(木) 15:58:20

xyzさま
  
    A列      B列         C列
  第1層フォルダ  第2層フォルダ    第2層フォルダ  
   年度    日付←1つのフォルダ→タイトル     
1.2018年度   2019119      〇〇について
2.2018年度   20180731      〇〇についてて
3.2021年度   20210803      〇〇について
4.2022年度   20220806      〇〇について

となるのが理想です。

dosさま
会社のPCのためセキュリティ管理がされているからかコマンドを使っての作業が出来かねます。。
回答ありがとうございます。
(たすけて) 2025/02/20(木) 16:37:25


https://www.a-ibs.com/get-file-name-list/
 これをベースにどうにかなりませんか?
 .jpg(仮)で検索してフォルダ名の重複削除して…とかでいけそうな。
(\) 2025/02/20(木) 16:45:07

 たぶんこんな感じです。前提がおかしいところは適宜修正してください。

 Sub test()
     Dim FSO      As Object
     Dim myRoot$
     Dim folder1 As Object
     Dim folder2 As Object
     Dim p&                  '書き込み用変数(1行目から書き込む前提)
     Dim d$                  '日付部分(yyyymmddの8桁と固定)
     Dim title$, s1$, s2$
     Const myRoot As String = "D:\問い合わせ"   ' ■対象とする親フォルダのパス(適宜修正)

     Set FSO = CreateObject("Scripting.FileSystemObject")
     For Each folder1 In FSO.GetFolder(myRoot).subfolders
         s1 = folder1.Name
         For Each folder2 In folder1.subfolders
             s2 = folder2.Name
             d = Left(s2, 8)
             title = Mid(s2, 9)
             p = p + 1
             Cells(p, "A") = s1
             Cells(p, "B") = d
             Cells(p, "C") = title
         Next
     Next
     Set FSO = Nothing
 End Sub

(xyz) 2025/02/20(木) 17:43:10


 >り取りしたメールを画像ファイルにして保存しているとき、

 フォルダ内に、何らかのファイルがあること(空フォルダでないこと)が前提ですが
 1)Power Queryの「フォルダから」で、ファイル一覧を取得
 2)[FolderPath]列で「重複の削除」
 3)[FolderPath]列でを「列の分割」:区切り記号とか文字数で
 4)不要な列を削除
(マナ) 2025/02/20(木) 22:32:07

 E:\問い合わせ 内のフォルダの場合。

 データ→データの取得→その他のデータベースから→空のクエリ
→詳細エディター→以下を貼り付け

 let
    ソース = Folder.Contents("E:\問い合わせ"),
    exp = Table.ExpandRecordColumn(ソース, "Attributes", {"Directory"}),
    fil = Table.SelectRows(exp, each ([Directory] = true)),
    del = Table.SelectColumns(fil,{"Name", "Content"}),
    exp2 = Table.ExpandTableColumn(del, "Content", {"Name"}, {"フォルダ"}),
    spl = Table.SplitColumn(exp2, "フォルダ", Splitter.SplitTextByCharacterTransition(
        {"0".."9"}, (c) => not List.Contains({"0".."9"}, c)), {"フォルダ.1", "フォルダ.2"})
 in
    spl

 →完了→閉じて読み込む
(んなっと) 2025/02/21(金) 00:11:13

 なるほど。Folder.Filesでなく、Folder.Contentsで取得できるのですね。
(マナ) 2025/02/21(金) 00:42:40

皆さま

こんなざっくりした相談にもかかわらず親切にご回答いただきありがとうございます!
希望通りの一覧作成があっというまにできました!!!

本当にありがとうございました!
(たすけて) 2025/02/21(金) 09:38:05


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.