[[20200501094010]] 『特定のサブフォルダを参照する』(noa) ページの最後に飛ぶ

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

 

『特定のサブフォルダを参照する』(noa)

指定したシートが無い場合次のループをする方法を
先日お聞きした者です。再度質問入れます。

先日は作業ブックと同じフォルダの中に入れたExcelをすべて参照、
という扱いでしたが、それでは不都合が出てきました。
そこで、
「同じフォルダ内の、特定のサブフォルダ "集計(仮)" 内のファイルを
すべて参照する」という形にするには、どうすればいいでしょうか。

・作業ブックが入っている現在のフォルダは移動やコピペする可能性がある
・今後サブフォルダを増やす可能性がある
 (サブフォルダのさらに下位にはフォルダ作成しない)

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


[[20200429093159]] 『指定したシートが無い場合次のループへ』(noa)
↑から続く。

■1
サブフォルダ"まで"含めたい場合、Dir関数だけだと対応できないです。
ただ、「同じフォルダ内の、特定のサブフォルダ "集計(仮)" 内のファイルをすべて参照する」の場合、対象になるフォルダは1つしかないですよね?

 C:\ああああ ・・・ブックがあるフォルダ
    ┗集計(仮) ・・対象はこれだけ

前トピックで、自ブックのパスが「ThisWorkbook.Path」で取得できることは示していますから、理解されているとおもうので、そこに「\集計(仮)」を合体させるだけでよくないです?

■2

 C:\ああああ ・・・ブックがあるフォルダ
    ┗集計1号 ・・対象
    ┗集計2号 ・・対象
    ┗ああ1号 ・・対象でない

みたいな場合は、
【プランA】

 (1)サブフォルダの中からフォルダ名の中に"集計"という名前が含まれる
    フォルダをDir関数を使ってリストアップする
 (2)(1)でリストアップしたフォルダの中からDir関数を使ってExcelブックを探す

【プランB】

 (1)Dir関数でサブフォルダ群を巡回してフォルダ名が"集計"という名前だったら
 (2)(1)のフォルダをDir関数以外の方法で巡回して、エクセルブックを探す

のように段階を踏まないとダメだとおもいます。

※プランAは配列を使うことになりそう
※プランBはFileSystemObjectを使えばよさそう

(もこな2 ) 2020/05/01(金) 10:57


もこな2様

わあ!そうですよね。特定フォルダだったらそこだけ指定してしまえばいいわけですね。
解決です・・・お恥ずかしい。
ご提示いただいたプランBの入り口みたいなことを検索で見つけて眺めて、深みにはまってました。

今後集計1号2号が出てくることも考えられるので、その先を調べて考えてみます。
ありがとうございます。

(noa) 2020/05/01(金) 11:11


コメント返信:

[ 一覧(最新更新順) ]


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