今日は在宅。前々からファイルのリストを出力するツールが欲しいと思っていて、最終的に欲しいリストはExcelで開けて、ファイル名の他に、パスと、ファイルかディレクトリかと、更新日と、サイズと、コメント欄が有るもの。それを起点のフォルダを選択したら、その下を再帰的に降りて行って、全て出力されていて欲しい。PoweShellで出来そうだが、PowerShellはバージョンが増え過ぎていて、異なるバージョンだと動かないことが多いので、VBAでやることにした。C#だともっと良いが、Officeは大抵のPCに入っているから、まぁ使えないと言うことは無いだろう。久しぶりなので思い出しながら。フォルダ選択ダイアログを表示するだけの物から始めて、1つのフォルダ内のファイルを表示する物、ファイルとサブフォルダを表示する物、隠し属性のファイルは表示しない物、のように少しずつ機能を増やしていって、サブディレクトリの中を表示するには再帰を組み込まないとなと思って、ちょっと調べて見るとサンプルがあれこれ見つかる。今一つ理解して居なくてもコピペすれば動く物が作れるのだから楽になったよな。
ある程度作ったところで夕方になった。残るは、サブフォルダの階層を何処まで降りるかの指定とテキストファイルへの出力。指定はダイアログを表示して階層を指定できるようにすればよい。テキストファイルへの出力は今までもやっているから、それは問題無いが、再帰の場合は何か注意しないとならないことはあるかな。それを調べて特になければ直ぐに出来る。まぁ、これの問題点は、対象ファイルが3万程度で、階層が10段くらいになりそうだから、メモリが持つかなというところ。階層指定はそれを考慮した物だ。まぁ、何もなければあっさりできるだろう(なお、出来上がって走らせたらファイル数は6万弱で階層は18段に達していた。)。