VBAでフォルダ名(サブフォルダ名を含む)を取得してセルに書き出す方法を教えて下さい。 対象のフォルダは C:¥DATA とします。

Visual Basic | Excel38閲覧

ベストアンサー

0

回答ありがとうございました。 みなさんの意見を見ると、結果が似ていても、こんなにも沢山のアプローチがあるのかと驚かされました。 今回は最も理想に近かったこちらを、BAにさせて頂きます。 みなさん、ご回答ありがとうございました。

ThanksImg質問者からのお礼コメント

ありがとうございました。

お礼日時:6/23 14:07

その他の回答(3件)

0

こんなのではいかがでしょうか。 ファイル一覧作成簡易版 http://hp.vector.co.jp/authors/VA033788/kowaza.html#0143 設定は以下で、ご要望の形に近くなるかと思います。 Const 更新日指定 As Boolean = False Const サイズ指定 As Boolean = False Const 連結文字 As String = " --- " Const HyperLink指定 As Boolean = False Const ワイルドカード As String = "*.xlsx"     path始点 = "C:\DATA"

設定まで詳しく指示いただき、ありがとうございました。私には難しい内容でしたが、うまく動きました。少しずつ噛み砕いて、理解したいと思います。 回答ありがとうございました。

0

「Excel VBA Folder Tree」で検索すると、こんなのが見つかります。 https://it.fudebaco.com/vba-tree-and-link/ これは、ファイルの一覧を出力するものですが、少し手を加えればフォルダの一覧に利用できそうです。 結果をさらに利用して何か別の処理を行わない限り、セル一つ一つに書き出す意義がないと思われます。もし、ただ単に一覧したいだけなら、コマンドプロンプトでTreeコマンドを実行して結果をコピーしてシートに貼り付ければ見やすいツリー図が簡単に作成できます。

画像

お察しの通り、結果を次の処理につなげたいと考えています。 コマンドプロンプト でも似たようなことができるんですね! 回答ありがとうございました。

0

いったん普通に、全階層+ファイル名のフルパスをA列に書き出せたなら、 あとは 「A列を選択→リボン→データ→区切り位置」にて 「¥」を区切り記号として指定し、 フォルダごとに順番に、各列(各セル)に自動的に分ける。 これをマクロの記録か何かで記録して、VBA化し、不要なコードを消したり、さらに都合のいいように少し内容修正すればいいのではないでしょうか? 意味が違ってたらごめんなさい。

回答ありがとうございました。 こちらこそ説明がわかりづらく申し訳ありませんでした。 区切り位置で分ける方法にはハッとさせられました。 ぜひ参考にさせていただきます。