フォルダの階層構造を書き出してみる
職場で、こんなリクエストをいただいた。
「指定パス以下のフォルダについて、階層構造をExcelに書き出せませんか」
ただ羅列するのではなく、階層構造が分かるように書き出せと?
取り組んでみた。
テスト用に、Cドライブ下にフォルダを幾つか準備した。
書き出しのイメージとしては、こんな感じだろうか。
ところが色々調べてみるうちに、ディレクトリやファイルをツリー状に表示する「Tree」というコマンドがあることを知った。何だ、良いのがあるじゃないか。
そこで、以前紹介したこちら ↓ の三番目の方法を応用してみた。
infoment.hatenablog.com
Function Tree(folder_path As String) As Variant Tree = Split(CreateObject("wscript.shell").exec("cmd /c tree """ & folder_path & """").StdOut.ReadAll, vbCrLf) End Function
それでは、テストしてみよう。
Sub test() Dim arr As Variant arr = Tree("C:\Temp") Range("A1").Resize(UBound(arr) + 1) = WorksheetFunction.Transpose(arr) End Sub
結果が ↓ こちら。
見た目もそんなに悪くないし、良いかも。
参考まで。